我正在尝试使用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,你需要填写其余部分):)
答案 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个字段。