フォルダ内にたくさんのファイルがあります。このフォルダ内のすべてのファイルの先頭に連番を追加します。また、ファイルはアルファベット順ではなく、サイズ順に並べ替えたい。フォルダ内のファイル名の先頭に連続番号を追加します。
例:ファイル "something.mp3"は、フォルダ内で最大のファイルであれば "01 - something.mp3"に名前を変更する必要があります。私はWindows上でそれをしたい。
フォルダ内にたくさんのファイルがあります。このフォルダ内のすべてのファイルの先頭に連番を追加します。また、ファイルはアルファベット順ではなく、サイズ順に並べ替えたい。フォルダ内のファイル名の先頭に連続番号を追加します。
例:ファイル "something.mp3"は、フォルダ内で最大のファイルであれば "01 - something.mp3"に名前を変更する必要があります。私はWindows上でそれをしたい。
ls -1S | awk '{print "mv \"" $0 "\" \""NR "_" $0"\";"}' | bash
パースls
出力が推奨されてしかし、あなたが知っている場合にのみ、あなたのファイル名がいずれも含まれていないこれを使用異常な文字Read more here
あなたのソリューションはBashで完璧に動作します、ありがとう!私はGit CMDを使ってWindows上で実行しました。 –
バッシュ:
I=0; for FILE in `ls -S`; do mv $FILE "$I - $FILE"; I=$((I+1)); done
お使いのOSがアルファベット順にファイルを一覧表示可能性があるため、私はいくつかの点でprintf
の使用をお勧めします(これが生成されます "0001 - file1.mp3"、 "0002 - file2.mp3" など)。パディング0の数を変更するには、printf%0 dの別の数字を使用します。
N=1
while read -r file
do
mv "$file" "$(printf %04d $N) - $file"
N=$((N+1))
done < "$(ls -S)"
(またはあなたが逆のソート(最小の最大を)したい場合"$(ls -rS)"
を使用しています。
これをバッチスクリプトで実行しようとしましたが、何も起こりませんでした。 –
FOR
コマンドは、ファイルサイズを決定するために、バッチファイルで使用することができます。
for %%F in (*.mp3) do echo [%%F] is [%%~zF] bytes
テキストソートでサイズ10がサイズ2よりも前に来るので、適切に並べ替えるためにはいくつかの作業が必要です。
DIR
コマンドは、サイズ順にファイルをリストするために使用することができます。
dir /os *.mp3
dir /o-s *.mp3
dir /b /o-s *.mp3 > filesbysize.txt
次にあなたがそのファイルを読み、あなたのリネームロジックをやって起動するFOR /F
を使用することができます。
SET /A
コマンドを使用して整数の数学を行うことができますので、必要な接頭辞を決定するためにカウンタをインクリメントする方法を見つけることができます。
これらのコマンドでそれぞれ遊ぶように準備してください。学習曲線は悪くないが、ゼロではない。
幸運を祈る!
いいアイデア。あなたが終わったら私たちに教えてください。 – Stephan
これはbashでタグ付けされていますが、BashソリューションまたはWindow cmdのみを要求していますか? – daniu
可能であれば、それをWindows上で行いたいと思います。それがなければ、私はBashでやりたいと思います。 –