63425
Goto Top

überprüfung auf groß-kleinschreibung mit -find-

hallo.

meine erste frage in dem forum ist eigtl ziemlich einfach aber führt bei meiner batch zu problemen.

eine for - schleife soll daten aus einer datei lesen und in verschiedene strings teilen. soweit so gut.
sobald ich aber den letzten teil mit 'find' überprüfen möchte hat man das gefühl, cmd hängt sich fast dabei auf.

for /f "delims=: tokens=1,2,*" %%i in ('findstr /v %tVar% "%pList%"') do (  
...
echo %%k | find "efault"  
...
)

es soll also nur geprüft werden, ob 'default' vorhanden ist und zwar egal ob groß oder klein.
wie kann ich das am elegantesten lösen, ohne noch extra zeilen einbauen zu müssen.

ich würde ja gerne auch auf eine if-abfrage zurück greifen:

set sDef=efault

if ( "%%k" equ "D%sDef%" || "%%k" equ "d%sDef%")  

ich weiß, dass dass so nicht möglich ist, würde aber trotzdem gerne wissen, wie man das so ähnlich lösen könnte.

aensz

Content-Key: 84237

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

Printed on: April 26, 2024 at 06:04 o'clock

Member: bastla
bastla Mar 29, 2008 at 18:05:25 (UTC)
Goto Top
Hallo #aensz und willkommen im Forum!

Egal, ob Du "find" oder "findstr" verwendest, kannst Du mit dem Schalter "/i" die Unterscheidung zwischen Groß- und Kleinschreibung verhindern (siehe auch "findstr /?").

Grüße
bastla
Mitglied: 63425
63425 Mar 29, 2008 at 18:30:06 (UTC)
Goto Top
hi.

ok, das war ein denkfehler von mir. die option mit /i kannte ich natürlich vorher schon.
aber ich hatte gerade eine falsche vorstellung davon, wie meine eigene schleife in dem moment arbeitet.

was mich trotzdem interessiert, warum 'find' dermaßen langam arbeitet und wie genau man solche komplexen if-abfragen gestalten kann.

zum forum:
ich werde, denke ich, in nächster zeit öfter hier vorbei schauen.
ich hatte vorher schon einige beiträge gelesen und finde es sehr interessant.

tschau, aensz


mir ist gerade aufgefallen, dass es wohl doch kein denkfehler war.
%sDef% kommt in keiner zeile vor, dh 'for' soll alle zeilen anzeigen und zerlegen. das hätte ich wohl dazu sagen müssen. am ende kommt in %%k dann also was ungefiltertes rein und das wollte ich abfangen.
ich könnte die datei auch einfach nur auf groß/kleinschreibung ändern aber das wäre zu einfach.

aensz
Mitglied: 63425
63425 Mar 30, 2008 at 00:45:48 (UTC)
Goto Top
jetzt habe ich eine lösung gefunden. war natürlich wieder viel einfacher als gedacht und wurde eigentlich schon oft im forum kommentiert.

echo %%k | find /i "%D%" >%tDatei%  
set /p tVar=<%tDatei%

oder, etwas kürzer:

echo %%k | find /i "%D%" >nul  && set tVar=%D%  

aensz