バッチファイルを使用してファイル名の末尾(拡張子の前)にテキストを追加します。

バッチファイルを使用してファイル名の末尾(拡張子の前)にテキストを追加します。

左の形式のファイルのリストがあります。各ファイル名に文字列を追加したいのですが、前に拡張子は次のようになります:

File 1.txt  ->  File 1 version 1.txt
File 2.txt  ->  File 2 version 1.txt
File 3.txt  ->  File 3 version 1.txt
File 4.txt  ->  File 4 version 1.txt
...

いずれの場合も、追加される文字列はすべてのファイルで同じになります。

これは非常に簡単な作業のように思えますが、これをバッチ ファイルに組み込むのに問題があります。

私はrenコマンドを試し、いくつかの例に従いましたこのページですが、結果のファイル名には文字列拡張子:

File 1.txt version 1.txt

答え1

?ファイル名が長い場合は、ブロック内にさらに追加する必要があります。?????????

ren *.?* ????????????????????????????????????????????????????????" version 1".*

答え2

頼るのではなくレンの文書化されていない癖については、なぜ適切な方法でこれを行わないのですか?

for %a in (*.txt) do ren "%~a" "%~na version 1%~xa"

これをバッチ ファイルで使用する場合は、各 % 記号を 2 重にすることを忘れないでください。

このコード行は、一致するすべてのファイルをループし*.txt、各ファイル名に対して名前変更コマンド ( ren) を実行します。 %aは完全なファイル名、%~aは余分な引用符が追加されていないファイル名です (引用符はコマンドで追加されます)。%~naはファイル拡張子のないファイル名、%~xaはファイル拡張子です。

ファイルが 1 つだけの場合は、File 1.txt現在のディレクトリで次のコマンドが実行されます。 ren "File 1.txt" "File 1 version 1.txt"

答え3

複数のファイルに「_A」を追加したかったので、次のようにしました。

まず拡張子を削除し、サフィックスを追加してから、拡張子を元に戻しました。私の場合は確かにうまくいきましたし、私はプログラマーではありませんが、バッチ コードはシンプルに保たれました。

@ECHO OFF

REN *.pdf *.
REN *. *_A.
REN *. *.pdf

答え4

コマンドに不慣れな人 (私のような) 向けに、一括名前変更を非常に簡単にするソフトウェアがいくつかあります。

  • 一括名前変更ユーティリティ(オープンソースではない)
  • Rename-It! (オープンソース)

関連情報