
77522
11.04.2009, aktualisiert am 12.04.2009
mit batch zeichen in einer bat datei finden
Brauche mal wieder hilfe
hi alle zusammen
habe mal wieder ne batch versucht die aus einer batch datei die zeichen %% findet und die zeile angibt.
nur leider habe ich wieder etwas falsch gemacht
mein code:
kann mir jemand bitte sagen wie es richtig geht
gruß
collmaster59
hi alle zusammen
habe mal wieder ne batch versucht die aus einer batch datei die zeichen %% findet und die zeile angibt.
nur leider habe ich wieder etwas falsch gemacht
mein code:
@echo off
for /f "delims=" %%e in ('"laufwerk.bat | find /n /i "%%""') do set var=%%e
echo %var%
pause
kann mir jemand bitte sagen wie es richtig geht
gruß
collmaster59
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 113701
Url: https://administrator.de/forum/mit-batch-zeichen-in-einer-bat-datei-finden-113701.html
Ausgedruckt am: 27.04.2025 um 19:04 Uhr
6 Kommentare
Neuester Kommentar
Hallo collmaster59!
Abgesehen davon, dass %var% nur die letzte Zeile mit "%%" (und natürlich deren Nummer) enthalten wird, könntest Du das so schreiben (für "findstr" müssen Sonderzeichen durch " \" maskiert werden):
Falls Du übrigens "find" bevorzugen solltest (ev tatsächlich sinnvoll, um die Zeilennummer leichter isolieren zu können - siehe unten):
bzw mit Zerlegung:
Grüße
bastla
P.S.: Findest Du nicht auch, dass Batch-Zeilen in ""-Formatierung besser aussehen?
[Edit] "%"-Zeichen in der "find"-Variante jeweils für Batch verdoppelt [/Edit]
Abgesehen davon, dass %var% nur die letzte Zeile mit "%%" (und natürlich deren Nummer) enthalten wird, könntest Du das so schreiben (für "findstr" müssen Sonderzeichen durch " \" maskiert werden):
for /f "delims=" %%e in ('findstr /n "\%\%" "laufwerk.bat"') do set "var=%%e"
for /f "delims=" %%e in ('find /n "%%%%" "laufwerk.bat"') do set "var=%%e"
for /f "tokens=1* delims=" %%e in ('find /n "%%%%" "laufwerk.bat"') do set Nr=%%e & set "Zeile=%%f"
bastla
P.S.: Findest Du nicht auch, dass Batch-Zeilen in ""-Formatierung besser aussehen?
[Edit] "%"-Zeichen in der "find"-Variante jeweils für Batch verdoppelt [/Edit]
Hallo collmaster59!
Ebenfalls sinnvoll für die Testphase: Anstelle von "echo off" ein "echo on" zu verwenden, da so alle Befehle vorweg angezeigt werden. Wenn Du das so machst, kannst Du erkennen, ob (bzw - wahrscheinlich - dass) die entsprechenden Zeilen gefunden werden.
Sollte aber in einer gefundenen Zeile etwa eine Umleitung (">" oder ">>") enthalten sein, wird diese natürlich bei der Ausgabe per "echo" auch ausgeführt. Abhilfe könnte dann eine Ersetzung durch die "maskierte" Version ("^>") schaffen:
(siehe dazu "set /?") ...
Grüße
bastla
leider öffnet sich nur ein leeres cmd fenster
Diese Tatsache ist schon mal ein sehr schlechtes Zeichen - weil sie zeigt, dass Du den Batch nicht direkt von der Kommandozeile startest (was Du während des Testens tun solltest) ...Ebenfalls sinnvoll für die Testphase: Anstelle von "echo off" ein "echo on" zu verwenden, da so alle Befehle vorweg angezeigt werden. Wenn Du das so machst, kannst Du erkennen, ob (bzw - wahrscheinlich - dass) die entsprechenden Zeilen gefunden werden.
Sollte aber in einer gefundenen Zeile etwa eine Umleitung (">" oder ">>") enthalten sein, wird diese natürlich bei der Ausgabe per "echo" auch ausgeführt. Abhilfe könnte dann eine Ersetzung durch die "maskierte" Version ("^>") schaffen:
echo "%Zeile:>=^>%"
Grüße
bastla