[英]Rename multiple files with string from .txt file using PowerShell
[英]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.