powershell 变得简单的困难, bat 跑

ilmyapht  于 2022-12-26  发布在  Shell
关注(0)|答案(1)|浏览(101)

我正在尝试运行一个简单的.bat,将包含空格的文件重命名为下划线。我在notepad ++中创建了.bat,并在网络驱动器上运行它。

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

pause

我已经在PowerShell中测试了这个脚本,就像这样,它工作正常。我还测试了我在同一目录中创建的Robocopy.bat,它也工作正常。不知道我做错了什么。我不是一个程序员,只有非常非常基本的编程技能。
谢谢你的帮助。
在同一目录下尝试在PowerShell中测试该命令,它工作正常。还尝试了同一目录下的robocopy命令和包含相同robocopy命令的.bat,也没有问题。我假设是某种形式的用户错误。
我只是希望能够运行这个.bat和重命名文件迅速节省一点点时间,因为这是我每天做几十次。应该是直接自动化。

s5a0g9ez

s5a0g9ez1#

可能还有更优雅的方法来实现这一点,但这里有一个纯批处理的示例:

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提供的一些有用的建议。

相关问题