2

我正在尝试做一个快速简单的游戏备份脚本,但它不适合我。这就是我所拥有的。

   @echo off

:main

RD /S /Q "C:\Users\Citadel\Desktop\Minecraft_Backups"

mkdir "C:\Users\Citadel\Desktop\Minecraft_Backups\%date% - %time%"

XCOPY "C:\Users\Citadel\AppData\Roaming\.minecraft\saves" "C:\Users\Citadel\Desktop\Minecraft_Backups\%date% - %time%" /D /E /C /R /I /K /Y

echo %date% - %time% - Backup Complete >> log.txt

PING 1.1.1.1 -n 1 -w 900000 >NUL

goto main

老实说,mkdir 命令是在黑暗中开枪,但到目前为止没有任何效果,所以我尝试了它。

4

2 回答 2

3

问题在于它%date%包含%time%不能在目录名称中使用的特殊字符。在脚本顶部试试这个:

for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
for /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a%%b)

或者,如果您更喜欢 24 小时制,请将第二行更改为:

for /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a%%b)

然后使用%mydate%_%mytime%代替%date% %time%.

请注意,这可能存在区域问题,但如果您确认它适用于您的机器,那么对于本地备份它总是没问题的。

于 2012-05-14T21:06:39.443 回答
0

这是我发现似乎有效的方法:

@setlocal enableextensions
set datestamp=%date:~-4,4%%date:~-10,2%%date:~7,2%
mkdir %datestamp%
于 2012-05-16T21:00:56.093 回答