Batch Savegames per 7z speichern

Nebuk

Lieutenant
Registriert
Sep. 2009
Beiträge
892
Hallo zusammen

Momentan spiele ich öfters Torchlight. Wenn ich zu Hause bin, spiele ich es auf dem Desktop, wenn ich unterwegs bin halt auf dem Laptop (längere Zug fahrt). Damit ich den letzten Spielstand jeweils auf den anderen Rechner verschieben kann, erstelle ich ein Zip-File mit den entsprechenden Speicherstände.

Da mir aber die Arbeit bisschen lästig wird und man den grössten Teil auch automatisieren kann, bin ich gerade an einer Batchdatei, welche mir die ständige Arbeit abnehmen soll.

Wie schon gesagt ist mein Ziel, die 3 Dateien automatisch in eine *.7z Datei zu verpacken um sie anschliessend per Mail oder FTP zu verschieben.

Ich bin nun soweit, dass mir die Datei beim anklicken erstellt wird. Doch ganz zufrieden bin ich noch nicht. Wenn der Ablauf schon automatisch abläuft soll mir die Datei auch noch nummeriert werden.
-> Wenn save1.7z existiert soll save2.7z erstellt werden, existiert diese auch soll die Datei save3.7z heissen etc.

Wie bekomme ich das hin?

Hier mein Code:
Code:
@echo off


REM ---------------------------------------------------------------------------------------
REM - Setzt die Variablen
REM ---------------------------------------------------------------------------------------


SET Q=1000
SET COUNT=1


REM ---------------------------------------------------------------------------------------
REM - Wechselt ins Torchligt Verzeichnis auf dem Desktop
REM ---------------------------------------------------------------------------------------


cd \
cd Dokumente und Einstellungen
cd XXXXXXXX
cd Desktop
cd SaveGames Torchlight ZIP


REM ---------------------------------------------------------------------------------------
REM - Erstellt save.7z wenn es noch nicht existiert
REM ---------------------------------------------------------------------------------------


If NOT EXIST C:\Dokumente und Einstellungen\XXXXXXXX\Desktop\SaveGames Torchlight ZIP\save.7z

cd \

cd Programme
cd 7-Zip

7z.exe a "C:\Dokumente und Einstellungen\XXXXXXXX\Desktop\SaveGames Torchlight ZIP\save.7z" "C:\Dokumente und Einstellungen\XXXXXXXX\Anwendungsdaten\runic games\torchlight\save\sharedstash.bin" "C:\Dokumente und Einstellungen\XXXXXXXX\Anwendungsdaten\runic games\torchlight\save\backup.tmp" "C:\Dokumente und Einstellungen\XXXXXXXX\Anwendungsdaten\runic games\torchlight\save\0.SVT"


REM ---------------------------------------------------------------------------------------
REM - Wenn es Existiert soll der folgende Loop ausgeführt werden
REM ---------------------------------------------------------------------------------------


If EXIST C:\Dokumente und Einstellungen\XXXXXXXX\Desktop\SaveGames Torchlight ZIP\save.7z goto loop

:loop


Set /a COUNT = %COUNT%+1


REM ---------------------------------------------------------------------------------------
REM - Fragt ab, ob die save+counter existiert, wenn nein, zur Sprungmarke Save
REM ---------------------------------------------------------------------------------------


if NOT EXIST C:\Dokumente und Einstellungen\XXXXXXXX\Desktop\SaveGames Torchlight ZIP\save%COUNT%.7z goto save
pause             REM  <<<===== HIER
goto loop


REM ---------------------------------------------------------------------------------------
REM - Speichert die die Datei als Save + Counter ab
REM ---------------------------------------------------------------------------------------


:save 

cd \

cd Programme
cd 7-Zip


7z.exe a "C:\Dokumente und Einstellungen\XXXXXXXX\Desktop\SaveGames Torchlight ZIP\save%COUNT%.7z" "C:\Dokumente und Einstellungen\XXXXXXXX\Anwendungsdaten\runic games\torchlight\save\sharedstash.bin" "C:\Dokumente und Einstellungen\XXXXXXXX\Anwendungsdaten\runic games\torchlight\save\backup.tmp" "C:\Dokumente und Einstellungen\XXXXXXXX\Anwendungsdaten\runic games\torchlight\save\0.SVT"

Es gibt mir auch die Fehlermeldung aus, dass der Befehl "und" nicht gefunden bzw. falsch geschrieben wurde. Der Fehler passiert irgendwo in der Schlaufe bei der Pausen-Markierung beim Pfeil.:)


Wie kriege ich das hin mit dem automatischen zählen und wo liegt der Fehler wegen dem "und"?

Für eure Hilfe danke ich euch!
Schönen Abend/Gute Nacht
 
naja, warum einfach wenns auch schwer geht...

Aber wenn du es doch lieber einfach haben willst -> wie wäre es mit automatisierter Ordnersynchronisation, z.B. per LAN? Da gibt es eine Menge Tools, z.B. SyncToy von Microsoft.
 
Nebuk schrieb:
if NOT EXIST C:\Dokumente und Einstellungen\XXXXXXXX\Desktop\SaveGames Torchlight ZIP\save%COUNT%.7z goto save
pause REM <<<===== HIER
goto loop

Wie kriege ich das hin mit dem automatischen zählen und wo liegt der Fehler wegen dem "und"?
Dir fehlen da einfach nur die Anführungszeichen beim Pfad. Darum kommt die Meldung der Befehl "und" konnte nicht gefunden werden --> c:\dokumente UND <--.

Also den ganzen Pfad, wie überall anders in der Batchdatei, unter " setzen und das Problem sollte erledigt sein.

Für die "Loop Schlaufe" probier mal mit 2 Variablen zu arbeiten. K.a. ob man im Batch die aktuelle Variable erhöhen kann ^^

PS: Grad gesehen dir fehlen noch bei ein paar anderen Pfaden auch die Anführungszeichen. ^^ Die brauchen ebenfalls welche damits überhaupt funktionieren kann.
 
Wenn er direkt %userprofile% oder eine andere sinnvolle Umgebungsvariable benutzt hätte, wär ihm der
Stress erspart geblieben. Und als Bonus würd das Skript sogar noch funktionieren wenn er zu W7 wechselt,
oder nach einer Neuinstallation einen anderen Benutzernamen benutzt.
 
Zuletzt bearbeitet:
Danke für die vielen Antworten. Ich habe den Fehler nun auch entdeckt. Es waren wie ihr erwähnt hattet die Anführungszeichen bei den If-Abfragen. Mit diesen Zeichen funktioniert es einwandfrei :)

Hier der Code, falls ihn jemand noch brauchen kann ^^
Code:
@echo off


REM ---------------------------------------------------------------------------------------
REM - Setzt die Variablen
REM ---------------------------------------------------------------------------------------


SET Q=1000
SET COUNT=1


REM ---------------------------------------------------------------------------------------
REM - Wechselt ins Torchligt Verzeichnis auf dem Desktop
REM ---------------------------------------------------------------------------------------


cd \
cd Dokumente und Einstellungen
cd XXXXXXXXXX
cd Desktop
cd SaveGames Torchlight ZIP


REM ---------------------------------------------------------------------------------------
REM - Erstellt save.7z wenn es noch nicht existiert
REM ---------------------------------------------------------------------------------------


If NOT EXIST C:\Dokumente und Einstellungen\XXXXXXXXXX\Desktop\SaveGames Torchlight ZIP\save.7z

cd \

cd Programme
cd 7-Zip

7z.exe a "C:\Dokumente und Einstellungen\XXXXXXXXXX\Desktop\SaveGames Torchlight ZIP\save.7z" "C:\Dokumente und Einstellungen\XXXXXXXXXX\Anwendungsdaten\runic games\torchlight\save\sharedstash.bin" "C:\Dokumente und Einstellungen\XXXXXXXXXX\Anwendungsdaten\runic games\torchlight\save\backup.tmp" "C:\Dokumente und Einstellungen\XXXXXXXXXX\Anwendungsdaten\runic games\torchlight\save\0.SVT"


REM ---------------------------------------------------------------------------------------
REM - Wenn es Existiert soll der folgende Loop ausgeführt werden
REM ---------------------------------------------------------------------------------------


If EXIST "C:\Dokumente und Einstellungen\XXXXXXXXXX\Desktop\SaveGames Torchlight ZIP\save.7z" goto loop

:loop


Set /a COUNT = %COUNT%+1


REM ---------------------------------------------------------------------------------------
REM - Fragt ab, ob die save+counter existiert, wenn nein, zur Sprungmarke Save
REM ---------------------------------------------------------------------------------------


if NOT EXIST "C:\Dokumente und Einstellungen\XXXXXXXXXX\Desktop\SaveGames Torchlight ZIP\save%COUNT%.7z" goto save

goto loop


REM ---------------------------------------------------------------------------------------
REM - Speichert die die Datei als Save + Counter ab
REM ---------------------------------------------------------------------------------------


:save 

cd \

cd Programme
cd 7-Zip


7z.exe a "C:\Dokumente und Einstellungen\XXXXXXXXXX\Desktop\SaveGames Torchlight ZIP\save%COUNT%.7z" "C:\Dokumente und Einstellungen\XXXXXXXXXX\Anwendungsdaten\runic games\torchlight\save\sharedstash.bin" "C:\Dokumente und Einstellungen\XXXXXXXXXX\Anwendungsdaten\runic games\torchlight\save\backup.tmp" "C:\Dokumente und Einstellungen\XXXXXXXXXX\Anwendungsdaten\runic games\torchlight\save\0.SVT"
 
Außer dir kann diesen Code kaum jemand gebrauchen. Grund steht oben. Dein Skript ist komplett von deinem
System abhängig und wird kaum woanders laufen. Nutze Umgebungsvariablen wie %userprofile%, um das
persönliche Verzeichnis des Benutzers zu finden und das Verzeichnis in dem Programme installiert werden.
Dann könnte es unter Umständen für irgendjemanden nützlich werden.
 
Also da hier viele predigen aber nicht sagen wie... schreib ich auch mal was.
Die Umgebungsvariablen funktionieren unter CMD also in Batches als auch im Explorer.
Anzeigen kann man sich alle Umgebungsvariable so:
start -> ausführen -> cmd [enter] -> set [enter]
set zeigt alle gesetzten variable an. Benutzen tut man diese mit %variablenname%
also %temp% ist dann eben das Temporäre Verzeichnis...

Aber ich persönlich hätte wohl VBS genommen :)
 
Zurück
Oben