复制文件以进行备份和追加日期

时间:2019-03-20 10:07:37

标签: batch-file for-loop

我正在使用以下脚本在复制和备份时将当前日期附加到文件中。但是,我在C:\ Test目录中有多个Excel文件。我想将每个文件名作为变量传递,并在复制到C:\ Test \ Archive \ Processed目录时附加日期。

@echo off

for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set DateTime=%%a

set Yr=%DateTime:~0,4%
set Mon=%DateTime:~4,2%
set Day=%DateTime:~6,2%

set BackupName=File Name__%Yr%-%Mon%-%Day%

copy "C:\Test\*" "C:\Test\Archive\Processed\%BackupName%.xlsx"

所需的输出:

FilenameA__2019-03-20.xlsx
FilenameB__2019-03-20.xlsx
FilenameC__2019-03-20.xlsx
...

在此先感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

您应该使用for loop和循环元变量的~ modifiers

for %%I in ("C:\Test\*.xlsx") do (
    copy "%%~I" "C:\Test\Archive\Processed\%%~nI__%Yr%-%Mon%-%Day%%%~xI"
)

答案 1 :(得分:0)

而不是您的copy语句,请输入以下内容(未经测试):

FORFILES /M *.xlsx /C "cmd /c copy @file C:\Test\Archive\Processed\@fname_%BackupName%.xlsx"