【问题标题】:Remove files from a folder using list of a filename?使用文件名列表从文件夹中删除文件?
【发布时间】:2014-09-16 13:47:04
【问题描述】:

我正在尝试从包含 3,500 多个文件的文件夹中删除文件。

文件夹 A(3,500+ 个文件),文件夹 B(

我想要的是 FolderA(3,500+Files) - FolderA(list.txt) = Missing files

我试过了:

获取内容 c:\path\to\list.txt |删除项目

它不起作用。

FolderA 有超过 3,500 个文件,在文件夹中我有一个名为“list.txt”的文件,其中列出了我想从 FolderA 中删除的所有文件

希望这是有道理的。

谢谢, 优格

【问题讨论】:

  • 您能否附上list.txt 内容的样本?
  • 下面是示例清单:AAN919 AAU569 ABA457 ABA548 ABB717 ABE555 AHH342 AHH347 AHH348 AHH457 AHN024 AHN032 AHN272 BLD093 BMQ858 BNF800 BNF806 BNG045 BNG047 BNG052 BNG059 BNG069 BNG072 BNG113 BNG120 BNG123 BNG125 BNG126 BNG144 BNG155 BNG159 BNG161 BNG163 BNG165 BNG167 BNG169 BNG207
  • 如果文件的名称与列表中显示的完全相同,则唯一缺少的是以前的cd c:\somewhere\folderA,因此Remove-Item 处理正确的元素。
  • 这正是我尝试过的: 1. GET-Content C:\Users\XXXXX\Desktop\missing2\ToBeDeleted.txt | Remove-Item 2. Get-ChildItem -exclude (gc ToBeDeleted.txt) | Remove-Item -whatif 3. If (C:\Users\gggggg\Desktop\missing2 $ToBeDeleted.txt){ Remove-Item $ToBeDeleted.txt }

标签: file powershell arraylist cmd delete-file


【解决方案1】:
cd "C:\Users\gggggg\Desktop\missing2" 
Get-Content "C:\Users\XXXXX\Desktop\missing2\ToBeDeleted.txt" | Remove-Item

将活动文件夹更改为要处理的文件夹,获取列表并删除每个项目

对于批处理解决方案

for /f "delims=" %%a in ("C:\Users\XXXXX\Desktop\missing2\ToBeDeleted.txt") do (
    del "C:\Users\gggggg\Desktop\missing2\%%a"
)

【讨论】:

  • “谢谢”@MC ND 这正是我所需要的。获取内容“C:\Users\XXXXX\Desktop\missing2\ToBeDeleted.txt”| Remove-Item 感谢大家的帮助
【解决方案2】:
dir /b /a-d "FolderA*"|findstr /g:"FolderA\list.txt" 

应该做你想做的事。

“FolderB”与问题有什么关系?

--- 呃,你想删除不在列表中的文件list.txt

嗯,上面应该给你一个要删除的文件列表,所以

for /f "delims=" %%a in ('dir /b /a-d "FolderA*"^|findstr /g:"FolderA\list.txt"') do ECHO(del "FolderA\%%a"

应该echo 相同的列表。如果正确,将echo(del改为del验证后即可真正删除文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    • 2013-05-02
    相关资源
    最近更新 更多