这是我目前的代码
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
我需要在任务计划程序中每两周备份一次文件,我需要脚本自动添加备份日期。此外,我查看了命令列表(例如/ Y / H / E),我找不到描述目标文件夹中的非覆盖的命令。我需要备份堆积,并且每次代码运行时都不会被删除。
答案 0 :(得分:1)
您可以创建一个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会认为首先询问它是什么是合理的。或者,您可以在目录路径的末尾添加“\”以指示它是一个目录。
答案 1 :(得分:0)
有效! “回显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
答案 2 :(得分:0)
你可以这样做。也许存在更好的解决方案,但它会起作用。此外,这是一个多个文件的方法。
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\
希望得到这个帮助。
答案 3 :(得分:0)
您可以添加%date%
如果要创建带有日期的文件夹并将文件放入其中, 像这样使用将日期添加到文件夹名称(D:\ myFolder15-04-2020):
xcopy /y /q /s "c:\myFolder\*" "D:\myFolder"%date%"\"
或仅包含日期的文件夹名称:(D:\ 15-05-2020)
xcopy /y /q /s "c:\myFolder\*" "D:\"%date%"\"
如果要将文件放在同一文件夹中并更改文件名,请使用:
xcopy /y /q /s "c:\myFolder\*" "D:\myFolder\"%date%".MDB*"
诀窍是:
命令末尾的“ \”表示文件夹名称
命令末尾的“ *”表示文件名