我想将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",,+
文件名正确复制并附加日期,但我无法正确更新日期。
答案 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"
)