【问题标题】:PowerShell - find a "mysterious" filePowerShell - 找到一个“神秘”的文件
【发布时间】:2023-03-11 18:44:01
【问题描述】:

我有一个包含 67045 个文件的文件夹(它应该只有 67044 个)。 当我运行这个脚本时:

Get-ChildItem -Recurse -Include  *.pdf | Group-Object Extension -NoElement

我得到了所有 67044 个 pdf 文件,它应该是这样的,但我无法得到其他文件是什么。 在我确认我确实不需要该文件后,如何找到并手动删除它,或者在最坏的情况下,如果它不是 PDF,则删除所有内容。

【问题讨论】:

  • 您是否尝试在Get-ChildItem 上使用-Force
  • -Include 更改为-Exclude 是否会显示任何其他/未知文件?
  • @SantiagoSquarzon - 我刚刚尝试过,但对我没有用。
  • @notjustme 是的,这确实有效。非常感谢。
  • 不,实际上它以不同的名称和不同的扩展名存在。使用 -Exclude *.pdf 帮助我找到了它。

标签: powershell


【解决方案1】:
Get-ChildItem -Recurse -Path C:\you\path -Include  *.pdf | Group-Object Extension -NoElement

这为您提供了只有 PDF 格式的文件及其总数。

只需将其更改为排除:

Get-ChildItem -Recurse -Path C:\your\path -Exclude  *.pdf -Force | Group-Object Extension -NoElement

这将为您提供除 pdf 及其相应计数之外的所有其他文件扩展名。

现在另一部分是根据要求,你不需要分组,找出除了pdf之外还有哪些可用的文件。请按照以下说明操作:

Get-ChildItem -Recurse -Path C:\Scripts\ -Exclude  *.pdf -Force

这将提供您要查找的任何内容,并且您可以进一步使用 Pipe 删除项目,例如 | Remove-Item -Force

【讨论】:

    【解决方案2】:

    你的问题是

    我无法获取其他文件。在我确认我真的不需要那个文件后,如何找到它并手动删除它,

    根据位置和方法,在桌面上获得比预期更高的文件数并不罕见,我可以找到 4 个可能是意外的“神秘条目”。

    通常,如果使用缩略图可能还会将 thumbs.db 添加到文件计数中。

    我有意选择众多系统隐藏文件之一来表达我的观点,但请注意包含公共 ini 和名为 Desktop 的子文件夹。

    因此,总文件的右键单击计数将添加这 4 个和许多其他文件。

    我们可以在只有一个文件的文件夹中更清楚地看到这一点,属性计数显示有 7 个

    Powershell自然会说只有一个docx

    为了获得更真实的文件数量(在本例中为 7 个),我们可以使用一个简单的命令

    所以要更真实地回答您关于神秘文件用途的问题

     Forfiles /m * |find /i /v ".pdf"
    

    这将排除 .PDF,如果“神秘”文件是文件夹或隐藏的系统文件,那么它应该会变得很明显。

    如果是folder.ini,请不要删除。

    【讨论】:

    • 非常感谢您的努力。非常感激。但是我已经从这里的 cmets 那里得到了答案,它帮助我解决了我的问题。还是谢谢你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    • 2015-05-06
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多