Sie können time
einen Verzeichnisnamen erstellen:
set butime=%time:~0,2%%time:~3,2%%time:~6,2% mkdir %butime%
Ich versuche, für alle x Minuten ein Backup für Assassins Creed 3 Save Game zu erstellen, aber der Ordner und seine Dateien werden jedes Mal überschrieben. Bitte schlagen Sie mir einen Code vor, damit sich jedes Backup in verschiedenen Ordnern befindet. Entschuldige mein schlechtes Englisch .
cls @echo off color 0C echo. echo Start Backup echo. pause :start cls echo. echo Backup started echo. xcopy "source" "destination" /s /y /e timeout /t 5 goto start
Sie können time
einen Verzeichnisnamen erstellen:
set butime=%time:~0,2%%time:~3,2%%time:~6,2% mkdir %butime%
Wenn Sie nichts dagegen hätten, die Namen der Verzeichnisse nach Datum und Uhrzeit zu erstellen (was Sie wahrscheinlich in dieser Situation nicht stören würden), könnte diese Batch-Datei funktionieren. Dies würde auch helfen, es ein bisschen zu automatisieren. Ich überprüfe, ob das Spiel läuft, weil es keinen wirklichen Grund gibt, ein Backup zu machen, wenn das Spiel für einige Zeit ausgeschaltet ist.
Erstellen Sie diese Batchdatei:
@echo off setlocal enabledelayedexpansion enableextensions cls rem Color is taken care of in the task call. %= ============================================================== =% rem * Take this section out if you want it to make backups even when rem * you're not playing the game. echo Checking if game is running... md "%tmp%\cmdtmp" set tmpdir=%tmp%\cmdtmp tasklist /fo csv /nh /fi "imagename eq %NameOfACExectuable%" /fi "status eq running" > "%tmpdir%\tmp.txt" set /p tasklist= < "%tmpdir%\tmp.txt" del "%tmpdir%\tmp.txt" rd "%tmpdir%" /s /q set tasklist= set tmpdir= %= ============================================================== =% set image= for /f "tokens=1 delims=," %%I in (!tasklist!) do ( set tmpvar=%%~I for %%J in (!tmpvar!) do if not defined image set image=%%~xJ rem * The file extension needs checked so image doesn't become rem * set with output saying that no files have been found. rem * This section has to be a bit complicated because there rem * isn't any straightforward way to get an extension out of rem * an environment variable. ) if not defined image goto :eof echo. echo Backup has now started. rem * This is to ensure that the date/time format is consistent rem * (we likely don't use the same date/time format). set X= for /f "skip=1 delims=" %%x in ('wmic os get localdatetime') do if not defined X set X=%%x set datetime=!X:~0,4!!X:~4,2!!X:~6,2!_!X:~8,2!!X:~10,2!!X:~12,2! set bkupdir="%WhereverYouWantToMakeTheBackup%" md "%bkupdir%\savebackup_!datetime!" set thisbkupdir="%bkupdir%\savebackup_!datetime!" xcopy "%WhereYourACGameSaveIs%" "!thisbkupdir!" /e /y /c /q echo. echo Backup completed. Exiting... timeout /t 5 /nobreak exit
Erstellen Sie eine Aufgabe (dazu gibt es zwei Wege):
%comspec% /t:0C /c "Drive:\Dir\To\YourBatchFile.bat"
.schtasks / create / tn WhatYouWantToNameIhreTask "/ tr" '% comspec%' / t: 0C / c \ "% DirToBat% \" "/ sc Minute / mo XBitte beachten Sie, dass die Anführungszeichen, die als Argumente an% comspec% übergeben werden, MÜSSEN, wie gezeigt, geschützt werden. Außerdem können Sie die Anzahl der Minuten hier genauer steuern als in der Benutzeroberfläche.
Ein Hinweis: Die Batchdatei wird so geschrieben, dass sie unmittelbar nach dem Erkennen des Spiels angehalten wird und überprüft, bevor irgendwelche Vorkehrungen zur Datensicherung getroffen werden. Wenn Sie das nicht möchten, nehmen Sie die mit kommentierten Gleichheitszeichen markierten Abschnitte heraus:%= ============= =%
Gerne können echo
Sie die Zeilen auch übersetzen, wenn Sie möchten.