Я думаю, вы немного путаетесь с тем, как работает findstr
. Он получает входные данные (для поиска, а не для поиска) либо в виде имени файла (шаблона), либо из stdin, но то, что вы ищете, всегда задается в командной строке как аргумент findstr
.
findstr foo xyz.txt
находит строку foo
в файле xyz.txt
.
type meh.txt | findstr x
находит строку x
в выводе предыдущей команды (в этом случае содержимое файла meh.txt
- хорошая трата команды type
, очень похожая на обычное неправильное использование cat
).
Поскольку вы после считает вместо фактических строк, в которых появляются имена макросов, я бы предложил другой подход. Это предполагает, что ваш файл, содержащий макросы, перечисляет их по одному в строке:
for /f "delims=" %x in (macros.txt) do @(echo %x: & find /c "%x" *.ss)
Цикл for
перебирает содержимое вашего файла построчно. Затем он печатает имя, которое вы ищете, и выполняет find /c
, который фактически считает совпадающие строки.