1

私がやろうとしているのは、Windowsバッチで変更して、最後に「d」が付いているすべてのexeファイルから最後の「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 に答える