gpt4 book ai didi

powershell - 无法删除带有尾随空格的 Windows 7 上的文件夹

转载 作者:行者123 更新时间:2023-12-03 11:03:50 24 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

7年前关闭。




Improve this question




问题:我有一个无法删除的 Windows 7 子目录。

虽然我在这里认识其他人,互联网上还有更多其他地方已经询问过此类一般的 Windows 7 文件系统问题,但我在这里的问题特别涉及 Windows 7 上的特定类别的不可删除文件,这些文件具有 目录名称中的尾随空格。

是否有更好的工具来检查和/或编辑我的文件系统(如果需要,可以使用十六进制)?

操作系统:我正在运行 x64 专业版,并且已经完全更新。

已尝试:我已经阅读了许多关于这个主题的网页,并尝试了许多潜在的解决方案。我最近一直在使用 PowerShell 研究这个问题,它似乎完全有能力处理系统内部问题。在这一点上,我正在为文件系统寻找类似十六进制编辑器的东西。

不是由什么引起的:

  • 一个长文件名,或
  • 由于位于一条漫长的道路上,

  • Unresolved 问题:
  • 使用旧的 DOS 文件命名方案重命名
  • 运行 CHKDSK整个文件系统
  • 关闭所有其他可能访问它的程序
  • 禁用病毒软件
  • 使用 Delinvfile.exe 4.5 实用程序。注意:Delinvfile 说它无法修复,“短名称的文件和文件夹包含无效字符。这些包括字符[文件名中不允许的]:

  • <  -  Less than symbol
    > - Greater than symbol
    : - Colon
    " - Quotation Mark
    / - Forward Slash
    | - Vertical Bar
    ? - Question mark
    * - Asterisk


    是什么引起的? 在我的例子中,不可删除的子目录是几个月前用自定义的 PHP 创建的。我用于源树备份的程序。名称中似乎有空格或其他不良字符,但我不能确定。它在文件目录中可见,但无法删除、重命名、rmdir 等。

    调查:我可以在我的文件系统上移动它,并将它放在 C: 上名为“holds bad subdir”的子目录中。

    在这里你可以看到它 with PowerShell .首先我用 Get-ChildItem 显示它(与别名“dir”相同):
    PS C:\holds bad subdir> Get-ChildItem


    Directory: C:\holds bad subdir


    Mode LastWriteTime Length Name
    ---- ------------- ------ ----
    d---- 1/9/2014 3:01 AM 20120530-04

    如果我尝试在 cmd 窗口中通过键入 'del "2' + tab 删除它,它完成文件名扩展如下:del "20120530-04 ",显示目录名末尾有一个空格。当我执行此命令时,结果是:

    Could Not Find C:\holds bad subdir\20120530-04



    如果我尝试用 del 2* 删除它,系统会返回,好像它已经删除了它,但没有。

    如果我在 PowerShell 中发出相同的命令,并且还使用 Force选项,它报告“指定路径 C:\holds bad subdir\20120530-04 上的对象不存在。”,如下:
    PS C:\holds bad subdir> Remove-Item 2* -Force  Remove-Item : An object at the specified path C:\holds bad subdir\20120530-04  does not exist.At line:1 char:1
    + Remove-Item 2* -Force
    + ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidArgument: (:) [Remove-Item], PSArgumentException
    + FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.RemoveItemCommand

    这有点奇怪,因为目录可以清楚地看到它,但显然任何方法要么看不到它,要么不能应用于它。

    我也可以在 Windows Explorer中查看不可删除的子目录.当我浏览它时,它说“这个文件夹是空的”。如果我尝试在那里删除它,我会得到:

    Enter image description here

    此外,如果我查看此文件夹的属性,我可以看到名称为“20120530-04”,即末尾有一个额外的空格。

    Enter image description here

    同样有趣的是,“安全”选项卡报告“(X) 请求的安全信息不可用或无法显示”。

    它不是只读的,也不是隐藏的。

    发行范围:现在,这不是什么大问题,很容易把这个子目录埋在一个偏僻的子目录中,不用担心。

    但对我来说,这已经变成了一个智力挑战,部分是一种了解更多 Windows 7 本质的方式。我想我很惊讶 Windows 中的这样一个错误可以存在于如此低的级别,并且安装了如此多的系统世界。在这一点上很难知道这是 Windows 错误、错误数据(错误进入)还是只是错误数据。

    最佳答案

    根据 You cannot delete a file or a folder on an NTFS file system volume (需要 JavaScript 才能显示),以下应该可以工作(注意它使用了 UNC 路径)。

    rd "\\?\C:\holds bad subdir\20120530-04 "

    请务必使用 cmd.exe 执行此操作。它似乎不适用于 PowerShell 的 Remove-Item (rd)。

    另见:
  • How to delete a folder containing trailing spaces
  • Rename/delete Windows (x64) folder with leading and trailing space .
  • 关于powershell - 无法删除带有尾随空格的 Windows 7 上的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21072767/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com