okidoki
Goto Top

BATCH externen string (.txt) in einem internen string (innerhalb der batch) finden

Guten Abend,
in diesem Forum habe ich schon oft viele super Tipps gefunden. Auf meine Frage fand ich aber noch keinen Rat!

Ich möchte gerne einen string (in einer externen *.txt) mit einigen Begriffen vergleichen, die innerhalb der Batch-Datei stehen. Dafür soll keine extra-Datei erstellt werden, so wie ich es in meinem Beispiel habe, das im Übrigen aber auch nicht funktioniert ;-(
Wichtig ist für mich, dass beide Begriffe exakt übereinstimmen müssen. Es darf also nicht funktionieren, wenn z.B. ein Buchstabe oder eine Zahl weniger oder mehr drinsteht, dass er es dann trotzdem findet!


::suche.txt z.B.: uiop321
@echo off

ECHO 321asdf >words.txt
ECHO qwerqwe >>words.txt
...
set %a%=suche.txt
if %a% in words.txt ECHO YES|ECHO no

PAUSE


Ich würde mich über eure Hilfe sehr freuen!

OKIDOKI

Content-Key: 178956

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

Printed on: April 18, 2024 at 13:04 o'clock

Member: bastla
bastla Jan 15, 2012 at 20:51:33 (UTC)
Goto Top
Hallo OKIDOKI und willkommen im Forum!

So ganz klar ist mir Dein Vorhaben noch nicht, aber wenn in "suche.txt" nur ein einziger String steht, kannst Du diesen ja mit
set /p "String=<suche.txt"
in die Variable %String% bekommen und dann zB mit
if "%String%"=="321asdf" echo YES
vergleichen ...

Alternativ dazu könntest Du auch die einzelnen Suchbegriffe gegen die Datei "suche.txt" testen:
findstr /x "321asdf" "suche.txt">nul && echo YES
In beiden Fällen lässt sich das über eine Schleife auch für mehrere Suchbegriffe zusammenfassen - etwa:
set "Gefunden="  
for %%i in (321asdf qwerqwe sonstnochwas) do findstr /x "%%i" "suche.txt">nul && set "Gefunden=True"  
if defined Gefunden echo YES
Grüße
bastla
Member: OKIDOKI
OKIDOKI Jan 16, 2012 at 07:50:09 (UTC)
Goto Top
Lieber bastla,

die Schleife ist ja super, genau das was ich brauche!!! Vielleicht noch eine Ergänzung, wenn es wichtig ist, wenn es keine Übereinstimmung gibt:


PS: Kannst du mir sagen, wie viele Zeichen "in ( qwerqwe asd123 sonstnochwas)" der interne String enthalten darf?


Herzlichen Dank,
das Forum hält wirklich was es verspricht!
OKIDOKI
Member: bastla
bastla Jan 16, 2012 at 08:07:32 (UTC)
Goto Top
Hallo OKIDOKI!
Kannst du mir sagen, wie viele Zeichen "in ( qwerqwe asd123 sonstnochwas)" der interne String enthalten darf?
http://support.microsoft.com/kb/830473/de
wenn es keine Übereinstimmung gibt:
if defined Key (echo Yes) else (echo no)
Grüße
bastla
Member: Skyemugen
Skyemugen Jan 16, 2012 at 08:15:57 (UTC)
Goto Top
Aloha,

Zitat von @OKIDOKI:
in diesem Forum habe ich schon oft viele super Tipps gefunden.
Wahrscheinlich auch, wie unsere ##blue|##-Formatierung funktioniert und dass
set %a% so oder so nicht funktionieren wird
Auf meine Frage fand ich aber noch keinen Rat!
Was ich mehr als bezweifeln möchte ... obwohl, es kommt ja kaum vor, dass jemand etwas bestimmtes (sogar aus einer anderen Textdatei) per Batch suchen bzw. finden will, hmm

Zu bastlas eben gepostetem Link möchte ich Hinweisen, dass dieser Wert nicht absolut ist und daher auch nicht immer seine Gültigkeit hat, gerade mit findstr sind die Suchlängen oftmals variierender als man glaubt, und nein, wir haben auch noch nicht herausgefunden, warum - aber schon so einige Phänomene hier hinter uns face-wink

Die Frage ist eben nicht nur: Wie viel wird gesucht? sondern auch In welcher Masse wird gesucht?

das Forum hält wirklich was es verspricht!
Ja, die User leider auch ...

greetz André
Member: OKIDOKI
OKIDOKI Jan 16, 2012 at 08:28:15 (UTC)
Goto Top
Aloha,

tut mir leid, falls ich etwas falsch gemacht habe!
Die Frage nach der Masse ist natürlich richtig. Aber es sind oft die kleinen Hürden, die einen verzweifeln lassen face-wink
Meine bisherige Suche erstreckte sich über Tage...

Vielleicht gibt es irgendeine Möglichkeit, besser zu suchen?

Trotzdem, super vielen Dank an bastla.

OKIDOKI
Member: OKIDOKI
OKIDOKI Jan 25, 2012 at 10:11:03 (UTC)
Goto Top