Используйте Windows findstr для вывода списка файлов, не содержащих строку - PullRequest
0 голосов
/ 16 октября 2018

Из Windows CMD я могу использовать

findstr -m subroutine *.f90

, чтобы вывести список всех файлов с суффиксом .f90, содержащих «подпрограмму».Чтобы вывести список всех файлов .f90, не содержащих строку, я могу сделать что-то вроде

dir /b *.f90 > files.txt
findstr -m subroutine *.f90 > files_with_string.txt

, а затем написать скрипт для вывода списка строк в файле files.txt, который не найден в файле files_with_string.txt.Есть ли более элегантный способ?

1 Ответ

0 голосов
/ 16 октября 2018

В findstr есть опция /v, но это не поможет.
Обработайте каждый файл с циклом for, попробуйте найти строку и, если она не найдет ее (||), повторить имя файла:

for %a in (*.f90) do @findstr "subroutine" "%a" >nul || echo %a

(выше синтаксис командной строки. Для использования в пакетном файле используйте %%a вместо %a (все три вхождения))

...