我试图得到一个简单的.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提供的一些有用的建议进行了修改。