1

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

我试过 [ren *d.exe *.exe] 但这并没有真正起作用。一直在环顾四周,但没有找到像那样解析文件名的东西。这可以使用许多工具轻松完成,但我正在寻找 Windows 批处理解决方案。谢谢。

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

4

1 回答 1

3

你可以尝试这样的事情:

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
)
于 2012-04-25T18:13:21.413 回答