[Batch] For-Schleife mit erweiterter If-Abfrage

28/06/2008 - 14:40 von Andreas Viehrig | Report spam
Hallo allerseits,

ich habe da ein Batch, was abhàngig von einer Bedingung zunàchst nur eine
zeilenweise Ausgabe erzeugt:

REM --
Set _Dateiname1=X:\Ordner\Datei.txt
For /F "usebackq delims=" %%A IN ("%_Dateiname1%") DO (

If "%%A"=="BegriffXYZ123" (
@Echo.
@Echo X gefunden
Pause

) Else (
@Echo %%A

)
REM Ende If

)
REM Ende For
REM --

Das ist jetzt noch nicht so wahnsinnig spannend. Nun möchte ich aber in der
If-Abfrage nur den *Anfang* der Zeichenkette abfragen, also etwa so wie mit
FindStr bei:

FindStr /B /I "BegriffX" "%_Dateiname1%">> "%_Dateiname2%"

Dummerweise kennt aber "If" nur den direkten Vergleich. Wie bekomme ich da
eine Floskel mit "FindStr" reingebastelt? Oder wie muß ich das "If"
formulieren?

Kann mir da bitte mal jemand auf die Sprünge helfen (oder wahlweise die
Tomaten von Augen ballern)?

Danke schon mal,
Andi

[XPost & F'up2 de.comp.os.ms-windows.misc]

"Entweder der Webshop gibt ein passendes Geràt her, oder der Webshop von
jemand anderem tut es. Die Feilscherei kann dann die Einkaufsabteilung von
mir aus per Telefon, Brieftauben, Buschtrommeln oder Saurons Auge erledi-
gen." - Michael Bode zur Frage, ob man evtl. besser per Tel. ordern soll
 

Lesen sie die antworten

#1 Stefan Reuther
28/06/2008 - 18:55 | Warnen spam
Andreas Viehrig wrote:
Das ist jetzt noch nicht so wahnsinnig spannend. Nun möchte ich aber in der
If-Abfrage nur den *Anfang* der Zeichenkette abfragen, also etwa so wie mit
FindStr bei:

FindStr /B /I "BegriffX" "%_Dateiname1%">> "%_Dateiname2%"

Dummerweise kennt aber "If" nur den direkten Vergleich. Wie bekomme ich da
eine Floskel mit "FindStr" reingebastelt? Oder wie muß ich das "If"
formulieren?



Teilvergleiche gehen nur mit Umgebungsvariablen. Also müsstest du den zu
testenden Begriff in eine Umgebungsvariable packen und die testen. Zum
Beispiel so:
setlocal enabledelayedexpansion
for %%i in (*.txt) do (
set datei=%%i
if "!datei:~0,7!" == "Begriff" echo !datei!
)

[XPost & F'up2 de.comp.os.ms-windows.misc]



ignoriert, weil .misc hab ich nicht.


Stefan

Ähnliche fragen