@ECHO OFF
SET backdir=backup
SET snapshotdir=snapshots
SET worldprefix=world_
SET itdate=%date:~10,4%-%date:~4,2%-%date:~7,2%
SET hour=%time:~0,2%
IF "%hour:~0,1%" == " " SET hour=0%hour:~1,1%
echo Current date: %itdate%. Current hour: %hour%. Current Minute:Second: %time:~3,2%:%time:~6,2%
forfiles /m "%worldprefix%*" /c (
echo Copying World: @path
cmd /c xcopy /e /c /h /i /v /r /y /q @file %snapshotdir%\@file\%itdate%-%hour%-%time:~3,2%-%time:~6,2%
cmd /c xcopy /e /c /h /i /v /r /y /q @file %backdir%\%itdate%D\worlds\@file
)
echo Copying Plugins
xcopy /e /c /h /i /v /r /y /q plugins %backdir%\%itdate%D\plugins\
xcopy /e /c /h /i /v /r /y /q %backdir%\%itdate%D %backdir%\%itdate%-%hour%H\
echo Backup Complete (assuming no errors above). Attempting to remove old files..
forfiles /p "%snapshotdir%" /c "cmd /c rmdir /s /q @path" /d -7
forfiles /p "%backdir%" /m "*H" /c "cmd /c rmdir /s /q @path" /d -2
forfiles /p "%backdir%" /m "*D" /c "cmd /c rmdir /s /q @path" /d -14
PAUSE
我想讓它以「world_」作爲前綴複製所有文件。它意識到了這一點,但是當我嘗試在循環中使用多個命令時遇到了問題。你可以用FOR命令來做到這一點,所以我認爲它的用法是一樣的。有人可以向我提供指導,我會解決這個問題。我可以爲每個文件運行3次forfile命令,但這不可能是正確的做法嗎?如何批量使用forfiles命令使用多個命令
「複製世界:」 ERROR:無效的參數/選項 - 「@file 」。 輸入「FORFILES /?」供使用。 無效的開關 -/q「@file backup \ 2014-04-28D \ worlds \ @file」 「複製插件」 這似乎不起作用,我試過你的方法之前去For循環描述的方法,他們似乎都不起作用。 – Brandon
@MegaSniperB - 哎呀 - 我在文中談到了需要的CMD/C,然後忘記在我的代碼中使用它。現在應該修好了。 – dbenham