Przygotowałem skrypt, który analizuje plik tekstowy pod kątem wybranego ciągu znaków (polecenie findstr). Przygotowałem też zliczanie ilości linii z pliku oraz wyświetlanie numeru linii, w której wystąpił ten znak. Np. wyszykuję ciągu znaków “abc” i załóżmy, że abc będzie w drugiej linii to wyświetli mi na ekranie:
Linia 2: abc
Proste prawda?
Napotykam jednak problem w przypadku, gdy w wyszukiwanej linii wystąpi “znak specjalny” pipe, czyli |. Załóżmy, ze druga linia pliku tekstowego to:
abc | coś tam | coś tam
Wtedy zamiast
Linia 2: abc
dostaję na ekranie:
"cos tam" is not recognized as an internal or external command,
operable program or batch file.
Jak zmusić BAT, żeby ignorował tego typu znaki specjalne w pobierane z pliku tekstowego? Jedyne, co osiągnąłem to dać cudzysłów dla zmiennej, ale wtedy otrzymam
"Linia 2: abc"
a to tak nieelegancko wygląda w batchu