左のフォーマットのファイルのリストがあります。次のように、各ファイル名に文字列を追加しますが、拡張子はbeforeです。
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
コマンドを試し、 このページ の例にいくつか従いましたが、結果のファイル名にはafter拡張子:
File 1.txt version 1.txt
ファイル名が長い場合は、ブロックに?
の質量のある?????????
を追加する必要があります。
ren *.?* ????????????????????????????????????????????????????????" version 1".*
renの文書化されていない癖に頼るのではなく、なぜこれを適切な方法で行わないのですか?
for %a in (*.txt) do ren "%~a" "%~na version 1%~xa"
これをバッチファイルで使用する場合は、%記号をそれぞれ2倍にしてください。
コマンドに慣れていない人(私のように)には、名前の一括変更を非常に簡単にするいくつかのソフトウェアがあります。
"_A"を複数のファイルに追加したかったので、これを実行しました。
最初に拡張子を削除し、サフィックスを追加してから、拡張子を元に戻しました。私はプログラマーではないので、それは確かにうまくいき、バッチコードをシンプルに保ちました。
@ECHO OFF
REN *.pdf *.
REN *. *_A.
REN *. *.pdf
@bwDracoのソリューションは優れていましたが、よりシンプルに保つことができました。私のファイルのセットはすべて* .jpgであり、それらの名前をすべて* c.jpgに変更したいと考えていました。このために必要な手順は2つだけで、3つではありません。
ren "{filepath}\*.jpg" *.
ren "{filepath}\*" *c.jpg
サブフォルダーを再帰的に
#!/bin/bash
# Warning: globstar excludes hidden directories.
# Turn on recursive globbing (in this script) or exit if the option is not supported:
shopt -s globstar || exit
for f in **
do
if [ -f "$f" ]; then
extn=${f##*.} # save the extension of the file
#mv "$f" "${f%.*}"_suffix.${extn};
mv "$f" "${f%.*} version 1".${extn};
fi
done