使用cmd备份文件夹

时间:2017-01-31 08:38:36

标签: cmd backup

我正在尝试使用cmd制作备份脚本。 到目前为止,这是我的代码:

X:
MKDIR "2017MMDD XXX Restore Profile"
CD "X:\2017MMDD XXX Restore Profile"
MKDIR "Desktop"
MKDIR "Favorites"
MKDIR "My Documents"
MKDIR "Pictures"
MKDIR "Videos"
XCOPY "C:\Users\%username%\Desktop" "X:\2017MMDD XXX Restore    Profile\Desktop"
XCOPY "C:\Users\%username%\Favorites" "X:\2017MMDD XXX Restore Profile\Favorites"
XCOPY "C:\Users\%username%\Documents" "X:\2017MMDD XXX Restore Profile\My Documents"
XCOPY "C:\Users\%username%\Pictures" "X:\2017MMDD XXX Restore Profile\Pictures"
XCOPY "C:\Users\%username%\Videoes" "X:\2017MMDD XXX Restore Profile\Videos"



Pause

问题是它只复制文件而不复制文件夹(如果有的话)。我需要一个能够复制文件和文件夹的功能。

BONUS,有没有命令让cmd写日期? (而不是2017MMDD,你需要填写其余部分):)

1 个答案:

答案 0 :(得分:0)

要回答您的日期部分问题:命令date /t可以为您提供当前日期。该命令的“快捷方式”是动态环境变量%date%(仅当您没有使用其他值覆盖该变量时)。如果您将两者中的一个与for f结合使用,则可以根据日期格式轻松提取年份,月份和日期。在我向您展示解决方案之前,我必须提醒您: date /t命令和%date%变量返回日期的format取决于您的设置(我认为位置和/或语言设置,可能取决于Windows版本)。就我而言,格式为dd DD/MM/YYYY,其中包含:

  • dd两个字母的星期几
  • DD当月的当天(2位数格式)
  • MM一年中的当前月份(2位数格式)
  • YYYY当年(4位数格式)

所以在我身边,为了得到我必须以这种方式使用for f的日期,月份和年份:使用/和{{ 1}}(空白)作为分隔符并提取分别代表日,月和年的第2,第3和第4个字段。