繁体   English   中英

使用Powershell和.txt文件删除多个文件

[英]Delete multiple files using powershell and a .txt file

我有一个.txt,其中包含我要删除的1000多个文件的名称。 我的.txt文件没有文件路径。 我要删除的文件分布在多个文件夹中,但是它们都在同一驱动器中。 有什么方法可以使用Powershell或命令提示符在驱动器中搜索与.txt文件中列出的名称相同的所有文件并将其删除吗?

假设您当前是PowerShell提示符,并且该提示符位于您要开始搜索的根位置,并且文件位于同一目录中:

gc .\MyListOfFilesIWantToDelete.txt | %{gci $_ -Recurse | Remove-Item -WhatIf}

请注意,您必须删除-whatif

或者,假设您的文件位于打开PowerShell的其他位置(例如:〜/ Documents),并且您想扫描D:驱动器。 这应该工作:

gc .\MyListOfFilesIWantToDelete.txt | %{gci D:\ -Filter $_ -Recurse -ErrorAction SilentlyContinue | Remove-Item -WhatIf}

注意我把SilentlyContinue。 这是因为如果您无法访问搜索路径中的文件夹,则会看到很多红色。

或者,您可以在文件列表中加载变量。

$thesefiles = gc .\mylistoffilesiwanttodelete.txt

..并直接使用Remove-Item cmdlet。

Remove-Item -Path D:\Folder -Include $thesefiles -Recurse -WhatIf

或一口气不加载变量:

Remove-Item -Path D:\Folder -Include $(gc .\mylistoffilesiwanttodelete.txt) -Recurse -WhatIf

同样,我使用-WhatIf进行测试。 另外,我注意到过去在不同版本的PowerShell上使用get-childitem会出现不同的行为。 我用5.1测试了这些

从以下Powershell命令更改目录

以下命令将允许您删除特定目录中的.txt文件

Get-ChildItem C:\*.txt -file -r | remove-item

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM