21360
Goto Top

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?

Content-Key: 21246

Url: https://administrator.de/contentid/21246

Ausgedruckt am: 28.03.2024 um 19:03 Uhr

Mitglied: superboh
superboh 08.12.2005 um 19:58:54 Uhr
Goto Top
Hi,

beim Setzen der Variable mit SET darfst Du den Variablennamen nicht in %-Zeichen einschliessen, nur bei der Verwendung der Variablen dann.

Also SET /P TEXT="BITTE EINGEBEN: "

aber ECHO %TEXT%


Was meinst Du mit "wegschreiben"? Wohin schreiben?
Und was ist das 3. Problem?

Gruss,
Thomas
Mitglied: 21360
21360 08.12.2005 um 21:02:28 Uhr
Goto Top
Mit wegschreiben meine ich das der Inhalt der Variable z.B. in die Pfad.txt geschrieben wird, sodass bei ich Sie bei einer deinstallation wieder auslesen (3. Problem) kann (So wird eine 2. Eingabe vermieden)

Ach ja, und es fällt mir gerade ein: Kann ich mit der Batch-Datei auch einen Link zu einer anderen Datei erstellen?

Aber der 1. Hinweis hat schon gut geholfen...schonmal danke face-wink
Mitglied: superboh
superboh 09.12.2005 um 09:48:32 Uhr
Goto Top
Hi,

wegschreiben:
echo %TEXT% > C:\tempfile.txt

einlesen:
set /p Verz=C:\tempfile.txt

Eine Verknüpfung anlegen kann man aus einer Batchdatei mit Boardmitteln nicht. Dazu braucht man entweder ein kleines VBS-Script oder ein Zusatztool wie MakeScut.

Gruss,
Thomas
Mitglied: 21360
21360 09.12.2005 um 19:46:02 Uhr
Goto Top
Das Wegschreiben funktioniert. Nur das Einlesen nicht. Sicher das der Befehl richtig ist?

Ich hab das wie folgt geschrieben:

set /P patha=C:\Patch\patha.txt
set /P pathb=C:\Patch\pathb.txt

Die Dateien bestehen und haben den korrekten Inhalt

versuche ich jetzt folgendes:

del patha\readme.txt

versucht er im aktellen Verzeichnis zu löschen
Mitglied: Biber
Biber 09.12.2005 um 21:43:45 Uhr
Goto Top
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
Mitglied: 21360
21360 10.12.2005 um 11:30:41 Uhr
Goto Top
hmmmm...danke...ich probiers mal aus...melde mich heute nochmal...denke das kanns schon gewesen sein
Mitglied: 21360
21360 10.12.2005 um 14:31:56 Uhr
Goto Top
Also, das ich das /P weglasse klappt nicht...und die %-Zeichen hatte ich schon eingetragen nur hier leider vergessen. Und der /? -Befehl hat nicht geholfen...
Mitglied: Biber
Biber 10.12.2005 um 15:14:09 Uhr
Goto Top
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=&ltC:\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
Mitglied: 21360
21360 13.12.2005 um 17:48:31 Uhr
Goto Top
soooo...hatte endlich Zeit zum Ausprobieren...

klappt alles perfekt

danke für die schnelle und gründliche Hilfe^^