Как найти файлы, содержащие "строку 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)}