77522
Goto Top

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:

@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

Content-Key: 113701

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

Ausgedruckt am: 28.03.2024 um 14:03 Uhr

Mitglied: bastla
bastla 11.04.2009 um 22:42:02 Uhr
Goto Top
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):
for /f "delims=" %%e in ('findstr /n "\%\%" "laufwerk.bat"') do set "var=%%e"
Falls Du übrigens "find" bevorzugen solltest (ev tatsächlich sinnvoll, um die Zeilennummer leichter isolieren zu können - siehe unten):
for /f "delims=" %%e in ('find /n "%%%%" "laufwerk.bat"') do set "var=%%e"
bzw mit Zerlegung:
for /f "tokens=1* delims=" %%e in ('find /n "%%%%" "laufwerk.bat"') do set Nr=%%e & set "Zeile=%%f"
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]
Mitglied: 77522
77522 12.04.2009 um 11:02:12 Uhr
Goto Top
hallo bastla
danke für deinen code
nur leider findet die batch die zeichen nicht
ich habe alle varianten ausprobiert.und auch wenn ich nach anderen zeichen suche passiert nichts
Mitglied: bastla
bastla 12.04.2009 um 11:15:15 Uhr
Goto Top
Hallo collmaster59!

Gefunden wird die Zeile vermutlich (besonders, wenn Du meine eben noch ergänzte Änderung berücksichtigst face-wink), allerdings dürfte es etwas schwierig sein, sie weiter zu verarbeiten ...

Was hast Du eigentlich damit vor?

Grüße
bastla
Mitglied: 77522
77522 12.04.2009 um 11:29:07 Uhr
Goto Top
na ja habe deine änderung übernommen

leider öffnet sich nur ein leeres cmd fenster

collmaster59
Mitglied: bastla
bastla 12.04.2009 um 13:53:26 Uhr
Goto Top
Hallo collmaster59!
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:>=^>%"
(siehe dazu "set /?") ...

Grüße
bastla
Mitglied: 77522
77522 13.04.2009 um 10:30:53 Uhr
Goto Top
hi bastla
habs geschaft
mein code:
for /f "tokens=1 delims= " %%a in ('find /n "%%%%" "webseite.bat"') do  echo %%a   
danke für deoínen tipp