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

问题描述 投票:0回答:5

这是我当前的代码

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

xcopy
5个回答
2
投票

您可以添加%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*"

诀窍是:

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


1
投票

你可以这样做。也许存在更好的解决方案,但它会起作用,此外,这是一种适用于多个文件的方法。

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\

希望这有帮助。


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 认为首先询问您它是什么是合理的。或者,您可以在目录路径的末尾添加一个“\”以指示它是一个目录。


0
投票

有效! “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

0
投票

我做的有点不同:

set today=%date%
set today_processed=%today:/=-%
xcopy /s /y "C:\Documents and Settings\Username\FolderToCopy\" "C:\Users\Username\Documents\BackupFolder\"%today_processed%"\"

另一种在日期中用破折号替换斜杠的方法...

© www.soinside.com 2019 - 2024. All rights reserved.