Batchbefehlsicherung in verschiedenen Ordnern

582
Prasanna Kumar

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 
-1

2 Antworten auf die Frage

1
WireGuy

Sie können timeeinen Verzeichnisnamen erstellen:

set butime=%time:~0,2%%time:~3,2%%time:~6,2% mkdir %butime% 
Ich habe es jetzt versucht, aber das Problem ist, dass Ordner auf dem Desktop erstellt werden Prasanna Kumar vor 11 Jahren 0
Oh, es tut mir leid, dass es geklappt hat. Prasanna Kumar vor 11 Jahren 0
1
Isiah Meadows

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.

  1. 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 
  2. Erstellen Sie eine Aufgabe (dazu gibt es zwei Wege):

    1. Via Taskplaner (Sie werden wahrscheinlich die Menüelemente in Ihre Muttersprache übersetzen lassen, wenn Microsoft überhaupt einen Sinn hat):
      1. Geben Sie im Startmenü taskschd.msc in die Suchleiste ein und drücken Sie die Eingabetaste.
      2. Klicken Sie in der linken Seitenleiste auf "Taskplaner-Bibliothek" und klicken Sie dann in der rechten Seitenleiste auf "Neue Aufgabe erstellen".
      3. Geben Sie den gewünschten Namen für die Aufgabe ein.
      4. Klicken Sie auf die Registerkarte "Trigger" und klicken Sie unten auf "Neu ...".
      5. Wählen Sie "Beim Erstellen / Ändern von Aufgaben" im Dropdown-Menü "Aufgabe beginnen".
      6. Aktivieren Sie im Bereich "Erweiterte Optionen" das Kontrollkästchen "Task alle wiederholen:" mit den folgenden Optionen:
        • X Minuten (Ihre Wahl hier)
        • Dauer: Unbegrenzt
      7. Klicken Sie auf die Registerkarte "Aktionen" und klicken Sie unten auf "Neu ...".
      8. Wählen Sie im Dropdown-Menü "Aktion" die Option "Programm starten", falls dies nicht bereits ausgewählt ist.
      9. Geben Sie im Feld "Programm / Skript:" ein %comspec% /t:0C /c "Drive:\Dir\To\YourBatchFile.bat".
      10. Stellen Sie sicher, dass auf der Registerkarte "Bedingungen" nichts ausgewählt ist. Wenn einige Optionen aktiviert sind, wird der Punkt all dieser Arbeiten schnell und vollständig aufgehoben, insbesondere wenn Sie einen Laptop verwenden und sowohl "Nur starten, wenn der Computer mit Netzstrom versorgt wird" als auch "Stop, wenn der Computer wechselt auf Batteriestrom "geprüft werden.
      11. Klicken Sie unten auf "OK", um die Aufgabe zu speichern.
    2. Über die Befehlszeile
      1. Geben Sie dies in die Eingabeaufforderung ein und drücken Sie die Eingabetaste (Ersetzen Sie% DirToBat% durch das tatsächliche Verzeichnis):
        schtasks / create / tn WhatYouWantToNameIhreTask "/ tr" '% comspec%' / t: 0C / c \ "% DirToBat% \" "/ sc Minute / mo X 
        Bitte 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 echoSie die Zeilen auch übersetzen, wenn Sie möchten.