如何使用xcopy在目标文件中添加日期?

时间:2018-04-21 03:11:45

标签: xcopy

这是我目前的代码

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),我找不到描述目标文件夹中的非覆盖的命令。我需要备份堆积,并且每次代码运行时都不会被删除。

4 个答案:

答案 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*"

诀窍是:

命令末尾的

“ \”表示文件夹名称
命令末尾的“ *”表示文件名