
21360
08.12.2005, aktualisiert am 21.01.2010
3 Probleme mit batch-dateien
1. Platzhalter eingeben 2. Text-Datei schreiben 3. Text-Datei wieder auslesen
Also, mein gößtes Problem ist folgendes: Ich will das der User eine Aufforderung erhält, den Parameter %patha% einzugeben
set /P %patha%="BITTE EINGEBEN: "
zur Eingabe kommt es dann auch, aber wenn ich dann folgendes mache:
md %patha%\Patch
erstellt die batch datei immer im aktuellen Verzeichnis den Ordner Patch...auch eine AUsgabe klappt nicht, das heißt der Parameter ist leer und ich weiß nicht weiter.
Mein 2. Problem ist, das ich diesen Pfad für spätere Deinstallation wegschreiben und später wieder auslesen will, aber keine Ahnung habe ob das überhaupt möglich ist.
Kann mir jemand helfen bzw. sagen ob das mit batch möglich ist, und wenn nein sagen mit was es wie geht?
Also, mein gößtes Problem ist folgendes: Ich will das der User eine Aufforderung erhält, den Parameter %patha% einzugeben
set /P %patha%="BITTE EINGEBEN: "
zur Eingabe kommt es dann auch, aber wenn ich dann folgendes mache:
md %patha%\Patch
erstellt die batch datei immer im aktuellen Verzeichnis den Ordner Patch...auch eine AUsgabe klappt nicht, das heißt der Parameter ist leer und ich weiß nicht weiter.
Mein 2. Problem ist, das ich diesen Pfad für spätere Deinstallation wegschreiben und später wieder auslesen will, aber keine Ahnung habe ob das überhaupt möglich ist.
Kann mir jemand helfen bzw. sagen ob das mit batch möglich ist, und wenn nein sagen mit was es wie geht?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 21246
Url: https://administrator.de/forum/3-probleme-mit-batch-dateien-21246.html
Ausgedruckt am: 18.05.2025 um 18:05 Uhr
9 Kommentare
Neuester Kommentar
Moin Arieavariel,
der Befehl "set /P", wie Thomas ihn vorgeturnt hat, ist schon richtig, wenn Du dann eine Benutzereingabe entgegennimmst.
So, wie Du ihn unten verwenden willst, willst Du ja die Werte patha/pathb schon setzen, wenn ich es richtig sehe?
Dann also das "/P" weglassen. Siehe Hilfe zu "Set" oder am Prompt "set /?".
Andere Fehlermöglichkeit ist, dass Variablen in Prozentzeichen eingeschlossen sein müssen, wenn sie als Variablen erkannt werden sollen.
also: del %patha%\readme.txt
HTH Biber
der Befehl "set /P", wie Thomas ihn vorgeturnt hat, ist schon richtig, wenn Du dann eine Benutzereingabe entgegennimmst.
So, wie Du ihn unten verwenden willst, willst Du ja die Werte patha/pathb schon setzen, wenn ich es richtig sehe?
Dann also das "/P" weglassen. Siehe Hilfe zu "Set" oder am Prompt "set /?".
Andere Fehlermöglichkeit ist, dass Variablen in Prozentzeichen eingeschlossen sein müssen, wenn sie als Variablen erkannt werden sollen.
also: del %patha%\readme.txt
HTH Biber
Sorry, Arieavariel,
ich habe vermutlich auch missverstanden, was Du eigentlich versuchst. Mein Fehler.
Also, nochmal in langsam:
Der "Set /P"-Befehl, wie er eigentlich gedacht ist, nimmt einen Benutzerinput entgegen.
Das heißt, eine Eingabe am Prompt von
set /P patha=C:\Patch\patha.txt
bewirkt, dass "C:\Patch\patha.txt" als "Eingabe-Aufforderung" angezeigt wird und der Benutzer etwas über die Tastatur eingeben soll.
Du willst aber den Input nicht über Tastatur und Benutzer, sondern aus einer Datei.
Das bewirkst Du mit dem Kleiner-Zeichen "<", was dann sinngemäß heißt "Hole Dir den Input aus dieser Quelle".
Somit wäre richtig:
set /P patha=<C:\Patch\patha.txt
Danach kannst Du prüfen, ob die Variable %patha% richtig gesetzt ist mit
@echo Variable Patha ist: [%patha%]
und auch Dein "type %patha%\ReadMe.txt" machen oder was immer Du vorhast.
Sorry für das Missverständnis.
Grüße Biber
ich habe vermutlich auch missverstanden, was Du eigentlich versuchst. Mein Fehler.
Also, nochmal in langsam:
Der "Set /P"-Befehl, wie er eigentlich gedacht ist, nimmt einen Benutzerinput entgegen.
Das heißt, eine Eingabe am Prompt von
set /P patha=C:\Patch\patha.txt
bewirkt, dass "C:\Patch\patha.txt" als "Eingabe-Aufforderung" angezeigt wird und der Benutzer etwas über die Tastatur eingeben soll.
Du willst aber den Input nicht über Tastatur und Benutzer, sondern aus einer Datei.
Das bewirkst Du mit dem Kleiner-Zeichen "<", was dann sinngemäß heißt "Hole Dir den Input aus dieser Quelle".
Somit wäre richtig:
set /P patha=<C:\Patch\patha.txt
Danach kannst Du prüfen, ob die Variable %patha% richtig gesetzt ist mit
@echo Variable Patha ist: [%patha%]
und auch Dein "type %patha%\ReadMe.txt" machen oder was immer Du vorhast.
Sorry für das Missverständnis.
Grüße Biber