附加ddmmyy并更新修改日期

时间:2013-08-30 15:07:17

标签: batch-file

我想将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",,+

文件名正确复制并附加日期,但我无法正确更新日期。

1 个答案:

答案 0 :(得分:0)

复制文件不会修改“上次修改”的日期。您需要触摸该文件。阅读此SO问题 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"
    )