Как найти файлы, содержащие "строку A" и НЕ содержащие "строку B", и вывести их имена в файл?

Я смотрел на этот другой вопрос, но не был уверен, как объединить эти запросы вместе.

Я начал с этого, но это не похоже на работу:

findstr /S /M "string A" *.vb | findstr /S /M /V "string B" > output.txt

Например, я хочу получить список файлов, содержащих "строку A", но НЕ "строку B".

Я хотел бы использовать командную строку Windows, если это возможно, или Windows PowerShell.

1 ответ

Решение

Это должно сделать это в powershell:

Get-ChildItem .\*.vb | Select-String A | Select-Object path -unique | Where-Object{!(Select-String -InputObject $_ -Pattern B)}

Чтобы включить подпапки:

Get-ChildItem .\*.vb -Recurse | Select-String A | Select-Object path -unique | Where-Object{!(Select-String -InputObject $_ -Pattern B)}

Я не уверен, что ваш конкретный пример отличается от моего макета, но, используя ваши конкретные условия поиска, попробуйте это:

Get-ChildItem .\*.vb -Recurse | Select-String HttpDelete | Select-Object path -unique | Where-Object{!(Select-String -InputObject (Get-Content $_.Path) -Pattern securityEntityPermission)}
Другие вопросы по тегам