0

ファイル名に ddmmyy を追加し、ファイルをコピーして特定の場所に移動したいと考えています。これまでのところ、これは私が持っているものであり、Date Modified を正しく機能させることができません。

元のコード:

@Echo Off
@For /F "tokens=1,2,3,4 delims=/ " %%A in ('Date /t') do @( 
Set Day=%%A
Set Month=%%B
Set Year=%%C
Set Year=%%D
Set All=%%A%%B%%C%%D
)
@For %%a in ("*.txt") do copy %%a "import\%%~na_%All%.csv"

私は次のことを試しました:

@For %%a in ("*.txt") do copy %%a,,+ "import\%%~na_%All%.csv"

@For %%a in ("*.txt") do copy %%a "import\%%~na_%All%.csv,,+"

@For %%a in ("*.txt") do copy %%a "import\%%~na_%All%.csv",,+

ファイル名は日付を正しくコピーして追加しますが、更新日を正しく更新することはできません。

4

1 に答える 1

0

ファイルをコピーしても、「最終更新日」は変更されません。ファイルに触れる必要があります。この SO Question https://stackoverflow.com/questions/51435/windows-version-of-the-unix-touch-commandを読んで試してみてください

copy %%a +,,
copy %%a "import\%%~na_%All%.csv"

それとは別に、改善のためのいくつかの提案をすることができます..

  • %DATE%コマンドの出力をコピー/解析する代わりに、環境変数を使用できますDATE

    の形式が%DATE%要件に合わない場合は、この SO の回答https://stackoverflow.com/a/11183896/30447をご覧ください。

  • MOVEファイルを移動する場合の代わりに使用できCOPYます(質問で述べているように)。

    @echo off
    for %%a in (*.txt) do (
      copy "%%a" +,,
      move "%%a" "import\%%~na_%DATE%.csv"
    )
    
于 2013-08-30T15:24:47.327 に答える