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

Printed on: April 24, 2024 at 10:04 o'clock

Member: superboh
superboh Dec 08, 2005 at 18:58:54 (UTC)
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 Dec 08, 2005 at 20:02:28 (UTC)
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
Member: superboh
superboh Dec 09, 2005 at 08:48:32 (UTC)
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 Dec 09, 2005 at 18:46:02 (UTC)
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
Member: Biber
Biber Dec 09, 2005 at 20:43:45 (UTC)
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 Dec 10, 2005 at 10:30:41 (UTC)
Goto Top
hmmmm...danke...ich probiers mal aus...melde mich heute nochmal...denke das kanns schon gewesen sein
Mitglied: 21360
21360 Dec 10, 2005 at 13:31:56 (UTC)
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...
Member: Biber
Biber Dec 10, 2005 at 14:14:09 (UTC)
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 Dec 13, 2005 at 16:48:31 (UTC)
Goto Top
soooo...hatte endlich Zeit zum Ausprobieren...

klappt alles perfekt

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