这是我当前的代码
xcopy "C:\Users\Asus\Desktop\Test\Test.MDB" "C:\Users\Asus\Google Drive\" /Y /H /E /F /I
exit
我需要代码来做类似的事情:
xcopy "C:\Users\Asus\Desktop\Test\Test.MDB" "C:\Users\Asus\Google Drive\Test (4-21-18).MDB" /Y /H /E /F /I
exit
我需要在任务计划程序中每 2 周备份一次文件,我需要脚本自动添加备份日期。此外,我查看了命令列表(例如 /Y /H /E),但找不到描述目标文件夹中的非覆盖的命令。我需要备份堆积起来,而不是每次代码运行时都被删除。
您可以添加%date%
如果您想创建带有日期的文件夹并将文件放入其中, 像这样使用将日期加入文件夹名称 (D:\myFolder15-04-2020):
xcopy /y /q /s "c:\myFolder\*" "D:\myFolder"%date%"\"
或仅包含日期的文件夹名称:(D: -05-2020)
xcopy /y /q /s "c:\myFolder\*" "D:\"%date%"\"
如果要将文件放在同一个文件夹中并更改文件名,请使用:
xcopy /y /q /s "c:\myFolder\*" "D:\myFolder\"%date%".MDB*"
诀窍是:
命令末尾的“\”表示文件夹名
命令末尾的“*”表示文件名
你可以这样做。也许存在更好的解决方案,但它会起作用,此外,这是一种适用于多个文件的方法。
XCOPY /Y /H /E /F /I C:\Users\Asus\Desktop\Test\*.MDB
rem get date, make if file name friendly
FOR /F "tokens=1-4 delims=/ " %%i in ('date/t') do set d=%%i-%%j-%%k-%%l
set MDB=*.%d%.MDB
ren *.MDB %mdb%
move C:\Users\Asus\Desktop\Test\*.MDB C:\Users\Asus\Google Drive\Test\
希望这有帮助。
您可以创建一个 bat 文件,在变量中获取当前日期并将此变量作为文件名的一部分。
这个 bat 文件有效:
for /f "skip=1" %%x in ('wmic os get localdatetime') do if not defined MyDate
set MyDate=%%x
set today=%MyDate:~4,2%-%MyDate:~6,2%-%MyDate:~2,2%
mkdir "C:\Users\Asus\Google Drive\Test (%today%).MDB"
xcopy "C:\Users\Asus\Desktop\Test\Test.MDB" "C:\Users\Asus\Google Drive\Test (%today%).MDB" /Y /H /E /F /I
exit
此代码首先将当前日期保存在“MyDate”变量中。 然后将所需的日期格式保存在“今天”变量中。 最后,“today”变量的内容用作作为参数传递给“xcopy”的文件名的一部分。
Mkdir 确保在使用 xcopy 之前首先创建目录。 这可以防止弹出 xcopy 问题
<F = file, D= directory>?
。
如果路径引用不存在的文件或目录,xcopy 认为首先询问您它是什么是合理的。或者,您可以在目录路径的末尾添加一个“\”以指示它是一个目录。
有效! “echo F|”自动确认您在 cmd 提示符下复制文件。
call set currentDate=%date:/=-%
call set currentDate=%currentDate:~-10%
echo F|xcopy "C:\Users\Asus\Desktop\Test\Test.MDB" "C:\Users\Asus\Google Drive\Test (%currentDate%).MDB" /Y /H /E /F
exit
我做的有点不同:
set today=%date%
set today_processed=%today:/=-%
xcopy /s /y "C:\Documents and Settings\Username\FolderToCopy\" "C:\Users\Username\Documents\BackupFolder\"%today_processed%"\"
另一种在日期中用破折号替换斜杠的方法...