难以让简单的.bat运行



我试图得到一个简单的.bat运行,重命名包含空格的文件为下划线代替。我在notepad++中创建了.bat,并在网络驱动器上运行它。下面是命令:

Q:Planning dir | Rename-Item -NewName {$_.name -replace " ", "_"}
pause

我在PowerShell中测试了这个脚本在这个目录下,就像这样,它工作了。我还测试了我在同一目录下创建的Robocopy.bat,它也可以工作。不知道我做错了什么。我不是程序员,只有非常非常初级的编程技能。

谢谢你的帮助。

尝试在PowerShell中在同一目录下测试该命令,它可以工作。还尝试了robocopy命令和.bat在同一目录中包含相同的robocopy命令,也没有问题。我假设是我的用户错误。

我只是想能够运行这个.bat和重命名文件快速节省一点时间,因为这是我每天做几十次的事情。应该很容易实现自动化。

可能有更优雅的方法,但这里有一个纯批处理的例子:

setlocal enabledelayedexpansion     
REM Change to the location you need.
pushd "folder_location"
for /f "tokens=*" %%G in ('dir /b /A:-D ^|%__APPDIR__%findstr.exe /C:" "') do (
set "_fName=%%G"
if defined _fName if not exist "!_fName: =_!" echo ren "%%G" "!_fName: =_!"
)

您可以在完成测试以执行命令时删除echo

编辑:根据@Magoo和@Compo提供的一些有用的建议进行了修改。

最新更新