1
Я пытаюсь удалить кучу файлов на основе файла csv. Файлы, перечисленные в файле csv, должны быть удалены из общего ресурса целевого файла. Когда я запускаю сценарий, я нахожусь в целевой папке, но я получаю следующее сообщение об ошибке:Powershell для удаления файлов на основе CSV
Remove-Item : The input object cannot be bound to any parameters for the command either because the command does not take pipeline input or the input and its properties
do not match any of the parameters that take pipeline input.
At line:9 char:56
+ Get-Childitem | where {$_.Name -match $filename} | Remove-Item -verbose -$fi ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (gp.html:PSObject) [Remove-Item], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.PowerShell.Commands.RemoveItemCommand
код ниже:
$csvFile = Import-csv "C:\\DeleteFiles.csv"
foreach($user in $csvFile)
{
$filename = $user.FileName
write-host $filename
Get-Childitem | where {$_.Name -match $filename} | Remove-Item -verbose -$fileName
}
Ваш код удалил все мои файлы. К счастью, я снова тестировал папку c: \ temp, а не фактическую папку. Поэтому я изменил код на Remove-Item -verbose $ filename, но получил следующую ошибку. Remove-Item: Невозможно связать аргумент с параметром «Путь», потому что это пустая строка. –
Прошу прощения, Сьюган, я не хотел критиковать отрицательно. Ваше решение работало как прелесть. и вы правы, есть некоторая пустая строка в файлах csv. Мне нужно убедиться, что нет пустых строк. Еще раз спасибо –
Не обижайтесь. Я просто рад, что вы работали изолированно. Но это хороший урок; Командлеты PowerShell часто принимают пустую строку, обозначающую * все *. Я тоже был сожжен этим раньше. – Swoogan