Я хочу найти все .txt файлы во всех разделах, но я не хочу смотреть в такие папки, как C: \ Windows, C: \ PerfLogs и т. Д. *
Мой код не 't работа.
$exl = ("*\PerfLogs\*","*\Program Files*","*\ProgramData\*","*\Windows\*",":\Python*");
foreach($i in (Get-PSDrive).Name -match '^[a-z]$'){
foreach($item in (Get-ChildItem "${i}:\*.txt" -Recurse | Where {$_.FullName -notlike $exl})) {
echo $item.Fullname;}}
Пожалуйста, сделайте мой код ресурсоэффективным.Заставьте его полностью пропустить исключенные папки, даже не возвращаясь в них.
Что странно, если я запускаю его только с одним элементом, и он все еще не работает.
foreach($i in (Get-PSDrive).Name -match '^[a-z]$'){ foreach($item in (Get-ChildItem "${i}:\*.txt" -Recurse | Where-Object {$_.FullName -NotLike "Windows"})) { echo $item.Fullname;}}
Он по-прежнему печатает все текстовые файлыфайлы в C: \, он игнорирует исключение.
Я пробовал с подстановочными знаками вокруг слова Windows и без них, все тот же результат.
Также пробовал Где -NotContains, -NotIn ....
Пожалуйста, выполните команду самостоятельно и убедитесь сами