我目前正在尝试运行PowerShell脚本来删除CSV中列出的一堆文件。删除驱动器根目录中的文件没有问题。当文件在文件夹中时,脚本只会出现问题。我尝试将" "
添加到文件路径和名称中,但仍然无法正常工作。我使用的是PowerShell 2.0版。
CSV示例(remove.csv
):
D:\Data\HomeDrives\stusers\user\My Documents\SC\setup.exe
PowerShell脚本:
$files = Get-Content "D:remove.csv"
foreach ($file in $files) {
Remove-Item -Path $file -Force
}
Write-Host -foregroundcolor yellow "Delete action complete"
我收到以下错误:
Remove-Item : Cannot find path ' D:\Data\HomeDrives\stusers\user\My Documents\SC\setup.exe'
does not exist.
+ FullyQualifiedErrorId: PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand.
我已经检查过,文件确实存在。
答案 0 :(得分:2)
您从输入文件中读取的路径具有前导空格。在删除文件之前修复输入数据或Trim()
字符串(如问题评论中所述):
foreach ($file in $files) {
Remove-Item -Path $file.Trim() -Force
}
您还可以使用ForEach-Object
循环而不是foreach
循环来简化代码:
Get-Content 'D:\remove.csv' | ForEach-Object { $_.Trim() } | Remove-Item -Force