我正在使用以下脚本在复制和备份时将当前日期附加到文件中。但是,我在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
...
在此先感谢您的帮助!
答案 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"