通过 powershell 删除列表中的文件

Deleting file in a list via powershell

基于 Whosebug 上的问题,我尝试 运行 这个脚本通过 powershell 递归地从 filelist.txt 中删除项目,脚本:

$TargetFolder = “C:\folder”
$fileList = "C:\folder\filelist.txt"
Get-ChildItem -Path "$targetFolder\*" -Recurse -Include @(Get-Content $fileList) | Remove-Item -Verbose

问题是,当我在文件列表中指定文件路径时,此脚本不会 运行,例如:

folder/folder/filea
folder/folder/fileb
folder/folder/filec

但如果我只是像

这样列出文件名,它会 运行
filea
fileb
filec

但这很糟糕,因为不同文件夹中有相同的文件名,我想删除特定文件夹中的特定文件.. 请帮忙,谢谢。

如果您的文件中有完全限定的文件名,则无需费心使用 Get-ChildItem。

改用这个:

$fileList = Get-Content "C:\folder\filelist.txt"
ForEach ($File in FileList) {Remove-Item $File -Verbose}

在我对这个文件的测试中:

G:\BEKDocs\Transfer\Calendar2.ics
G:\BEKDocs\Transfer\SyncEventsToCalendar.ics

我得到了这个结果:

PS> $fileList = Get-Content "G:\BEKDocs\Transfer\filelist.txt"
ForEach ($File in $FileList) {Remove-Item $File -Verbose}
VERBOSE: Performing the operation "Remove File" on target "G:\BEKDocs\Transfer\C
alendar2.ics".
VERBOSE: Performing the operation "Remove File" on target "G:\BEKDocs\Transfer\S
yncEventsToCalendar.ics".

PS>