1

ファイルを移動するためのスケジュールされたタスクとして設定したい単純なバッチファイルを開発しました。

現在、これは私のコードです。

move /-y "C:\Folder\Folder\Folder\*File*.csv" "C:\Folder\Folder\Folder\Folder\File.csv"

pause

ただし、これは明らかに重複(および2回目の転送後の上書きの競合)につながります

この問題を解決するために、日付(ファイルは1日1回だけ移動されます)または一意の識別子を追加するにはどうすればよいですか?

ありがとう

4

3 に答える 3

5

試す

 move /-y "C:\Folder\Folder\Folder\*File*.csv" "C:\Folder\Folder\Folder\Folder\File_%date:~6,4%_%date:~3,2%_%date:~0,2%.csv" 

注:上記のコマンドの数字6,4 3,2 0,2は、日付の形式によって異なります。echo %date%デフォルトの日付形式については、コントロールパネルを確認してください(またはを使用してください)。もちろん、順序を変更することができます:-)

私のデフォルトの日付フォーマットはDD/MM / YYYYであり、このスニペットはそれをYYYY_MM_DDに変更します

于 2012-11-06T11:26:31.090 に答える
1

このようなことをして、ファイル名に日時を追加できる場合があります...

for / f "tokens = 1-5 delims = /" %% d in( "%date%")do rename "C:\ Folder \ Folder \ Folder \ Folder \ File.csv" %% e-%% f- %% g.csv

test-デスクトップ上にtest.txtを作成し、.batを実行しました(もちろん、.batファイル内のテストファイルの名前と場所に一致するようにファイル名と場所を変更しました)。

.batを実行した後、ファイル名が11-06-2012.txtに変更されました。

お役に立てれば。

于 2012-11-06T11:26:27.847 に答える
1

問題は単純ですが、解決策はバッチで醜いです。たとえば、上記の回答の1つで、次の出力が生成されました。

C:\>echo %date:~6,4%_%date:~3,2%_%date:~0,2%
/08/_ 1_Th

明らかに、それは常に機能するとは限りません。幸い、Rob Van der Woudeは、このようなソリューションを準備して収集しました。そのコードは私のために次の出力を生成します:

DateParsed=20121108

私はRobのコードをコピーし、使いやすさのためにここで彼のソースを参照しました。

:: One of the ugliest scripts required for such a seemingly simple thing is getting dates parsed
:: http://www.robvanderwoude.com/datetimentparse.php
SET Today=%Date: =0%
SET Year=%Today:~-4%
:: Include 1 extra character, which will be either a leading zero or a trailing separator
SET Month=%Today:~-10,3%
:: Remove separator
SET Month=%Month:-=%
SET Month=%Month:/=%
:: Clear leading zeroes

SET /A Month = 100%Month% %% 100
:: And add one again, if necessary
SET /A Month = 100 + %Month%
SET Month=%Month:~-2%
SET Day=%Today:~-7,2%
:: Remove separator
SET Day=%Day:-=%
SET Day=%Day:/=%
:: Clear leading zeroes, as there may be 2 leading zeroes
SET /A Day = 100%Day% %% 100
:: And add one again, if necessary
SET /A Day = 100 + %Day%
SET Day=%Day:~-2%

SET DateParsed=%year%%month%%day%
echo DateParsed=%DateParsed%
于 2012-11-08T08:37:38.650 に答える