@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
Sto provando a farlo copiare tutti i file con "world_" come prefisso. Riconosce questo, ma mi imbatto in un problema quando provo ad avere più comandi nel ciclo. Puoi farlo con il comando FOR quindi presumo che l'utilizzo sia lo stesso. Qualcuno potrebbe darmi istruzioni su chi vorrei risolvere questo problema. Potrei eseguire il comando forfile 3 volte per ogni file, ma quello non può essere il modo corretto di farlo, vero?Come utilizzare più comandi in batch utilizzando il comando forfiles
"Mondi copia:" errore: Argomento/Opzione non valida - '@file '. Digita "FORFILI /?" per l'uso. Interruttore non valido -/q "@file backup \ 2014-04-28D \ worlds \ @file" "Copia plug-in" Non sembra funzionare, ho provato il metodo prima di passare al metodo descritto dal ciclo For, entrambi sembrano non funzionare. – Brandon
@MegaSniperB - Whoops - Ho parlato del necessario CMD/C nel mio testo, quindi ho dimenticato di usarlo nel mio codice. Dovrebbe essere risolto ora. – dbenham