
107389
05.07.2012, aktualisiert um 00:36:04 Uhr
Variable überprüfen mit Platzhaltern
Hallo liebe Administratoren 
Ich lade mir den Namen des Ordners, aus dem die Batch ausgeführt wird in die Variable %ordner%. Jetzt möchte ich überprüfen, ob der Ordnername mit einem bestimmten Schema übereinstimmt. (z.B. AS_0000_00_00 - AS und die Unterstriche sind immer am selben Platz, für die Nullen können Zahlen zwischen 0 und 9 stehen)
Bei meinem Code springe ich allerdings immer zu :gefunden, auch wenn das Schema vom Ordner überhaupt nicht passt...
...was mache ich falsch?
Vielen Dank schonmal für die Hilfe
Ich lade mir den Namen des Ordners, aus dem die Batch ausgeführt wird in die Variable %ordner%. Jetzt möchte ich überprüfen, ob der Ordnername mit einem bestimmten Schema übereinstimmt. (z.B. AS_0000_00_00 - AS und die Unterstriche sind immer am selben Platz, für die Nullen können Zahlen zwischen 0 und 9 stehen)
Bei meinem Code springe ich allerdings immer zu :gefunden, auch wenn das Schema vom Ordner überhaupt nicht passt...
...was mache ich falsch?
PushD "%1"
for %%i in ("%cd:\=","%") do set "ordner=%%i"
PopD
echo %ordner%|findstr /L /C:"AS[0-9][0-9][0-9][0-9]_[0-9][0-9]_[0-9][0-9]" || goto gefunden
goto nicht_gefunden
:gefunden
echo gefunden
pause
goto weiter
:nicht_gefunden
echo nicht gefunden
pause
:weiter
pause
Vielen Dank schonmal für die Hilfe
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 187500
Url: https://administrator.de/forum/variable-ueberpruefen-mit-platzhaltern-187500.html
Ausgedruckt am: 23.04.2025 um 17:04 Uhr
6 Kommentare
Neuester Kommentar
Hallo ne0nymous und willkommen im Forum!
... daher eher so:
Grüße
bastla
... daher eher so:
PushD "%1"
for %%i in ("%cd:\=","%") do set "ordner=%%i"
PopD
echo %ordner%|findstr "AS_[0-9][0-9][0-9][0-9]_[0-9][0-9]_[0-9][0-9]">nul || goto nicht_gefunden
echo gefunden
pause
goto weiter
:nicht_gefunden
echo nicht gefunden
pause
:weiter
pause
bastla
Hallo ne0nymous!
Um den gesamten String zu vergleichen, kannst Du den Schalter "
Grüße
bastla
springt er trotzdem zu :gefunden.
In meinem Ansatz gibt es kein ":gefunden".Um den gesamten String zu vergleichen, kannst Du den Schalter "
/x
" hinzufügen, um nur den Anfang/das Ende zu überprüfen gibt es "/b
" bzw "/e
" ...Ist es möglich, dass man nach der Auswertung vom findstr alles aus der Variablen löscht, was nicht mit dem Schema übereinstimmt, dass man danach nurnoch "AS0000_00_00" darin stehen hat?
Dazu brauchst Du ja nur einen entsprechend (12 Zeichen) langen Teilstring zu bilden (siehe "set /?
"):set "ordner=%ordner:~,12%"
bastla
Hallo ne0nymous!
Du könntest zwar ganz genau
schreiben, aber es wird auch in diesem Fall natürlich der Inhalt von %ordner% den Ausschlag geben - versuch es daher mit folgender Zeile 3:
damit wird der Ordnername nicht mehr in Anführungszeichen in die Variable geschrieben ...
Grüße
bastla
Du könntest zwar ganz genau
set "ordner=%ordner:~0,12%"
for %%i in ("%cd:\=","%") do set "ordner=%%~i"
Grüße
bastla