Я боролся с этим весь день. Я пытаюсь удалить любые файлы в данном каталоге, если имена файлов соответствуют слову в списке CSV.Удалить элементы в каталоге, если filename соответствует словам из CSV
Я импортировал CSV-список в качестве текста, затем попытался совместить слова с именами файлов в целевом каталоге, однако я не уверен, какой оператор использовать или как это сделать. Очевидно, что «Матч» не является командлетом.
#store csv file as variable
$CSVList = Get-content -Delimiter (',') -path "C:\Users\Leeds TX 11\Desktop\Test folder\Watchfolder\DAZN Production Numbers - purgelist.csv"
write-host $CSVList
#delete if word matches .csv entry
$targetdirectory = "C:\Users\Leeds TX 11\Desktop\Test folder\AVMedia"
$Files = Get-childItem $targetdirectory | Match ("\w") $CSVList | remove-item -whatif
write-host $Files
Спасибо Мартину, попробовал этот метод уже, однако дает следующее сообщение об ошибке: – user6705306
'Where-Object: Невозможно связать параметр 'FilterScript'. Невозможно преобразовать значение «BaseName» типа «System.String», чтобы ввести «System.Management.Automation.ScriptBlock». В строке: 10 символов: 55 + $ Файлы = Get-childItem $ targetdirectory | Где-Object <<<< BaseName -В $ CSVList + CategoryInfo: InvalidArgument: (:) [Where-Object], ParameterBindingExce ption + FullyQualifiedErrorId: CannotConvertArgumentNoMessage, Microsoft.PowerShell.Comma nds.WhereObjectCommand' – user6705306
Какая версия PowerShell ты используешь? –