2016-07-09 3 views
1

Ich versuche, ein sicheres System für meine Text-basierte RPG-Spiel (das ist nur zum Spaß, wird sich nicht als etwas), aber es wird einfach nicht speichern. Ich habe einen kleineren Code erstellt, der dieses Problem enthält.Was ist los mit meinem Stapelcode?

@echo off 
color a 
title TestSave 
set /a physdam=3 
cd C:\Users\%username%\Documents 
mkdir testsave2>nul 
echo set /a physdam=%physdam%>save.bat 
echo Process Complete! 
pause>nul 

Die Ausgabe, die ich bekomme, wenn ich dieses Batch-Programm ausführen, ist dies;

Set/a physdam =

Prozess abgeschlossen!

Hilfe

Edit: Es wird nicht auch eine save.bat innerhalb des testsave2 Ordner erstellen.

+0

Bitte ändern Sie Ihre Frage Titel zu etwas mehr social! Der aktuelle Titel hilft anderen Benutzern nicht bei der Suche nach einer Lösung für ein ähnliches Problem ... – aschipfl

Antwort

1

Es funktioniert, wenn Sie Platz vor >save.bat hinzufügen, aber ich bin nicht sicher, warum die Datei ohne den Raum leer erstellt wird. Außerdem wird >save.bat die Datei im aktuellen Verzeichnis erstellen, das C:\Users\%username%\Documents war. Sie können entweder cd testsave2 oder den Pfad wie >testsave2\save.bat

@echo off 
color a 
title TestSave 
set /a physdam=3 
cd %USERPROFILE%\Documents 
if not exist testsave2 mkdir testsave2 > nul 
echo set /a physdam=%physdam% > testsave2\save.bat 
echo Process Complete! 
pause > nul 

angeben Wenn Sie die Fehlermeldung vermeiden möchten, wenn der Ordner testsave2 vorhanden ist, Sie es mit if not exist testsave2 überprüfen können.

Um die Werte für alle Umgebungsvariablen wie %USERNAME% und anzuzeigen, können Sie den Befehl set ohne etwas danach verwenden.

+4

Während es ordentlich ist, dass Sie den gepackten Code zur Verfügung gestellt haben, wäre Ihre Antwort viel besser, wenn Sie erklären würden, was dieser Code ändert und wie er das löst Problem, so dass zukünftige Benutzer nicht ein Diff-Tool und fundierte Vermutungen verwenden müssen, um die Lösung zu finden. –

+1

Ryan hat Recht. Obwohl es offensichtlich ist, "uns alten Charge Jungs", ich denke nicht, OP kann herausfinden, * warum * Ihre Arbeit ist und seine nicht (und ich hoffe wirklich, dass er sich interessiert). – Stephan

+0

Sie haben absolut Recht, und die Frage war "Was ist los mit meinem Batch-Code?" Letztendlich. Ich werde meine Antwort mit einigen Informationen aktualisieren. – Slai