windows批处理:删除文件名中的最后一个“d”

我想要做的是通过一个Windows批量更改从最后所有的exe与“d”删除最后一个“d”。 例如:[stringofwhateverlengthd.exe]到[stringofwhateverlength.exe](注意d丢失)

我曾尝试过[ren * d.exe * .exe],但这并不真正的工作。 一直在四处张望,但还没有findparsing文件名称的东西。 这可以用很多工具轻松完成,但我正在寻找windows批处理解决scheme。 谢谢。

更新:那很好用! 谢谢。 有没有办法做到这一点,而不改变原始和目标文件夹的原始内容使用xcopy? 例如[xcopy a \ * d.exe b \ *。exe]

你可以尝试这样的事情:

FOR %%A IN (*.exe) DO ( SET "name=%%~nA" SETLOCAL EnableDelayedExpansion IF /I !name:~-1! == d ( RENAME "%%A" "!name:~0,-1!.*" ) ENDLOCAL ) 

但是在对此进行更多的思考之后,比如@Marc (谢谢!),你可以想出更简单的事情:

 FOR %%A IN (*d.exe) DO ( SET "name=%%~nA" SETLOCAL EnableDelayedExpansion RENAME "%%A" "!name:~0,-1!.*" ENDLOCAL )