2017-09-19 17 views
0

私はそのタイトルで誰を混同していない願って、私は非常によく、短い行に私の問題を記述することはできません...私は(複数のファイルとフォルダを持っていますすべて同じ拡張子を持っています)、それらの名前をすべて数値に変更したいのです。バッチファイルは名前を置き換えるたびにカウントアップしなければならないので、簡単であるはずです。しかし私は間違っている可能性があります。バッチ:数値のファイル名の変更(毎回カウントアップ)

私は離れていくつかの基本からバッチについてあまり知らないが、私はいつもより多くを学ぶことがうれしいです。すべての答えを事前に

ありがとう!

+0

これは自分でやってみましたか?はいの場合は、ここで共有してください。 – sohaib

+0

@ S.Ahmadはい、しかし、私は遠くに逃げませんでした。実際には、私はバッチにカウントアップする必要があることに気付く前に約5行を書きましたが、私はそれを行う方法がわからず、インターネット上の他のすべてのソリューションは複雑すぎるようでした。 – Puntherline

答えて

2

空のフォルダを作成し、それらの名前を変更しながら、新しいフォルダにファイルを移動し、古いものに戻ってそれらを移動する方が簡単になります。そうすれば、既存のファイルの名前を変更したり、すでに名前を変更したファイルを繰り返したりすることで、問題は発生しません。

私の元の溶液:(代わりに、最終更新日時を使用するように変更/ TCへ/ TW)作成時間順に先行ゼロを持つファイル番号、コンポのコメント@を更新しました

@echo off 
setlocal enabledelayedexpansion 
set folder=C:\path\to\existing\folder 
md %folder%.TEMP 
set /a n = 0 
for %%f in ("%folder%\*") do (
    set /a n += 1 
    move "%%f" "%newfolder%\!n!%%~xf" 
) 
move "%folder%.TEMP\*" "%folder%" 
rd %folder%.TEMP 

@echo off 
setlocal enabledelayedexpansion 
set folder=C:\path\to\existing\folder 
md %folder%.TEMP 
set /a n = 0 
for /f "delims=" %%f in ('dir/b/a-d-s-l/od/tc "%folder%"') do (
    set /a n += 1 
    set zn=0000000!n! 
    set zn=!zn:~-8! 
    move "%%f" "%newfolder%\!zn!%%~xf" 
) 
move "%folder%.TEMP\*" "%folder%" 
rd %folder%.TEMP 
+1

私はゼロと並べ替えることができるように日付と時刻で並べ替えることをお勧めします。 _ファイルを移動すると元のタイムスタンプが変更されますか?_ – Compo

+0

@Compo - パディングが追加されました。 – DodgyCodeException

+0

私はまだあなたの番号付けは、既存の書かれた '\ TW'、または作成された' \ TC'タイムスタンプに基づいているべきだと思います。 '/ F "Delims =" で( 'ディレクトリ/ B/A-D-S-L/OD/TC "%フォルダ%"')ドゥ明確化のためのおかげで@Compo(' – Compo

関連する問題