Batch Leerzeichen in einer Variable durch . ersetzen?
Hallo liebe Community,
Ich habe mal wieder ein Batch Problem.
mein script
set /p top=?
find /i ":%top%" %userprofile%\Desktop\die .bat datei>NUL
if errorlevel 1 goto fragen
goto %top%
:fragen
echo :%top%>>%userprofile%\Desktop\die .bat datei
Das Programm soll wenn der Bezugspunkt existiert zu ihm gehen,wenn er nicht existiert ihn erstellen.
wenn %top% "hallo welt" ist, wird im script ":hallo welt" eingefügt.
Wenn %top% "hallo du" ist, wirt ":hallo du" eingefügt.
Nun ist das Problem das aufrufen.
So dass wenn %top% "hallo du" ist steht da goto hallo du.
Batch realiesiert aber nur goto hallo und geht zu :hallo welt
Nun ist meine Frage ob es eine Möglichkeit gibt,alle Leerzeichen aus %top% durch punkte zu ersetzen oder zu entfernen.
Danke im Vorraus
2 Antworten
Dafür brauchst du String Manipulation in Batch (hier eine ganz gute Seite dazu: dostips.com/DtTipsStringManipulation.php )
Also in deinem Fall:
set "top=%top: =.%"
Du kannst auch "Anführungszeichen" in deinen Sprungmarken verwenden um die Leerzeichen drin lassen zu können:
rem //Neue Sprungmarke:
:"sprung marke1"
rem //Aufruf:
goto :"sprung marke1"
Was mich noch interessiert: Was willst du mit deiner Batch Datei bezwecken?
Und falls die Datei in sich selber schreiben soll, benutze doch die Variable %0, in dieser steht der Dateipfad zur eigenen Batch Datei. So musst du den Pfad zur Datei nicht kennen bzw. es ist egal wo die Batch liegt.
~Tim
Schonmal mit
goto "%top%"
versucht?
Generell ist es keine gute Idee Leerzeichen in seine Variablen einzubauen. Im Grunde sogar eine sehr dumme Idee.