2016-08-11 14 views
0

私は周りを見回しましたが、これに非常に類似した投稿がたくさんありますが、私が必要とする答えを見つけることができないようです。ディレクトリ内のファイルをバッチオーダーしてファイル名を変更する

私は数字に名前を変更したい別の拡張子を持つ大きなファイルリストを持っています。例に変更

SomeFileName1.jpg 
SomeFileName2.gif 
SomeFileName3.mkv 

について:

1.jpg 
2.gif 
3.mkv 

私は同じ拡張子を維持したいです。名前だけ1,2,3などに変更する必要があります。

私はすべてのファイルの名前を変更したコードを見つけましたが(コードはもうありません)、間違った順序で名前が変更されました。 「SomeFileName3.mkv」は、例えば「3.mkv」ではなく「1.mkv」となった。どういうわけか最初に並べ替える必要があるかどうか分かりません。私はこのようなことをあまりよくしていないので、実際に助けてもらうことができます。ありがとう

+0

どのような注文が正しい注文であるかはどのように決めるのですか? – vielmetti

+1

どのように正しい順序と間違った順序を決定していますか?ソート順に基づいているのですか、名前から "ファイル"を削除してファイル名を変更していますか?より良い例がありますか? – dbmitch

+0

名前はすべて非常によく似ていて、順番に違います。 –

答えて

0

すべてのファイルを処理するのにforループを使用してください。 dirを使用して、必要に応じてファイルをソートします。カウンターを使用してください。カウンタを動作させるには、delayed expansionを使用してください。詳細については、

@echo off 
setlocal enabledelayedexpansion 
set count=0 
for /f "delims=" %%a in ('dir /b /on /a-d') do (
    set /a count +=1 
    ECHO ren "%%a" "!count!%%~xa" 
) 

出力があなたを満たしている場合for /?dir /?set /?

を読んで、renコマンドを武装させるECHOを削除します。

+0

は完全に機能します。ありがとうStephan :) –

関連する問題