CMD/BAT - jak "wyłuskać" tylko zmienne typu string spełniające warunek?


(XOR) #1

Mam pewien problem.

Piszę skrypt, który działa na pliku o rozszerzeniu .txt. W pliku zawarte są linie z róznego typu danymi. Potrzebuję obrobić ten tekst, żeby skrypt wykonywał się dla tych ciągów znaków, które odpowiadają wzorcowi. Czyli np. wyszukanie tych folderów (tokenów), które mają ciąg znaków np. abc. wiem jak wyświetlić token o konkretnym numerze, ale nie wiem jak napisać warunek, żeby brany był pod uwagę tylko token o pożądanymo ciągu znaków.

 

FOR /F "tokens=1-3 delims=;" %%G IN ('type "*.txt"') DO set string=%%G && echo !string! - to polecenie wyświetla mi wszystkie tokeny.

 

FOR /F "tokens=1-3 delims=;" %%G IN ('type "*.txt"') DO set string=%%G && echo !string! - to polecenie wyświetla mi drugi token (%%H). nie wiem jak zrobić, żeby wyświetlało mi tylko ten token %%H i dalsze o pożądanym ciagu znaków. Np. token %%H Probowalem:

 

FOR /F "tokens=1-3* delims=;" %%G IN ('type "*.txt"') DO set string=%%H && echo !string! | findstr /i "abc" %string%,, ale wtedy nic nie wyświetla. Podejrzewam ,że trzeba tu użyć jakiegoś if'a.

 

 


(bachus) #2

… będę nudny… a co to za OS? Coś nowszego, niż XP? Może jednak PS?


(XOR) #3

Win7, ale to będzie działać też na starych systemach, więc musi być przenosne.


(Drobok) #4

Może warto pomyśleć nad czymś mniej upierdliwym w użyciu np c++ / c#

http://stackoverflow.com/questions/7005951/batch-file-find-if-substring-is-in-string-not-in-a-file