【问题标题】:How to use xcopy to add the date in the destination file?如何使用 xcopy 在目标文件中添加日期?
【发布时间】:2018-10-01 18:48:30
【问题描述】:

这是我当前的代码

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 "C:\Users\Asus\Desktop\Test\Test.MDB" %sourceFolder% "C:\Users\Asus\Google Drive\copy-%date%"跨度>
  • <F = file, D= directory>? 尝试后弹出:xcopy "C:\Users\Asus\Test.MDB" %sourceFolder% "D:\Test\copy-%date&" /Y /H /F /I 即使使用xcopy "C:\Users\Asus\Test.MDB" %sourceFolder% "D:\Test\copy-%date&"
  • reference: stackoverflow.com/questions/16994879/… 此参考的最后一个答案将起作用,因为此参考中没有标记为正确的答案,很难说哪个是正确的。请在此处告诉我们哪个答案对您有用,我们会在此处将其标记出来,以便对其他人也有帮助
  • 谢谢,虽然我不明白如何使用%sourceFolder%%date%。这些应该被替换成任何东西吗?
  • xcopy C:\Users\Asus\Test.MDB D:\Test\copy-%date% %sourceFolder% 是文件所在的文件夹。直接使用上面的命令。 %date% 也可以按原样使用。

标签: xcopy


【解决方案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\

希望对您有所帮助。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      诀窍是:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-09-01
          • 1970-01-01
          • 2021-03-03
          • 1970-01-01
          • 2014-08-29
          • 2021-02-11
          • 1970-01-01
          相关资源
          最近更新 更多