Ell*_*iew 23 powershell explorer cmd windows-7 delete-directory
问题:我有一个Windows 7子目录,我无法删除.
虽然我在这里认识其他人,并且互联网上的其他许多人已经询问了这类Windows 7文件系统的常见问题,但我的问题特别涉及Windows 7上具有尾随空格的特定类别的不可删除文件.目录名称.
有没有更好的工具来检查和/或编辑我的文件系统(如果需要,可以用十六进制)?
操作系统:我正在运行x64专业版,它已完全更新.
已经尝试过:我已经阅读了很多关于这个主题的网页,并尝试了许多潜在的解决方案.我最近使用PowerShell一直在研究这个问题,它似乎完全能够处理系统内部.此时我正在为文件系统寻找类似十六进制编辑器的东西.
它不是由以下原因引起的:
它不是由以下原因修复的:
Run Code Online (Sandbox Code Playgroud)< - Less than symbol > - Greater than symbol : - Colon " - Quotation Mark / - Forward Slash | - Vertical Bar ? - Question mark * - Asterisk
是什么造成的?在我的例子中,几个月前使用我用于源树备份的自定义PHP程序创建了不可删除的子目录.它似乎在名称中有空格或其他不良字符,但我不能确定.它在文件目录中可见,但不能删除,重命名,rmdir等.
调查:我可以在我的文件系统上移动它并将其放在C:中名为'hold bad subdir'的子目录中.
在这里,您可以使用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
Run Code Online (Sandbox Code Playgroud)
如果我尝试通过键入"del"2'+ tab在cmd窗口中删除它,它将完成文件名扩展,如下所示:del"20120530-04",表明目录名末尾有一个空格.当我执行此命令时,结果是:
无法找到C:\持有坏子目录\ 20120530-04
如果我尝试使用del 2*删除它,系统将返回,就好像它已删除它,但不是.
如果我在PowerShell中发出相同的命令,并且还带有该Force选项,它会报告"指定路径上的对象C:\ hold 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
Run Code Online (Sandbox Code Playgroud)
这有点奇怪,因为目录可以清楚地看到它,但任何方法显然要么看不到它,要么无法应用它.
我还可以在Windows资源管理器中查看不可删除的子目录.当我浏览它时,它说,"这个文件夹是空的".如果我尝试删除它,我得到:

此外,如果我查看此文件夹的属性,我可以看到名称是"20120530-04",也就是说,末尾有一个额外的空格.

另外有趣的是,"安全"选项卡报告"(X)请求的安全信息不可用或无法显示."
它不是只读的,也不是隐藏的.
问题范围:现在,这不是一个大问题,很容易将这个子目录埋在一个偏远的子目录中,而不用担心它.
但对我来说,这已成为一项智力挑战,部分是一种了解Windows 7内容的方法.我想我很惊讶Windows中的这样一个错误可能存在于如此低的水平,而且安装了如此多的系统世界.在这一点上很难知道这是一个Windows错误,坏数据(错误进入),还是只是坏数据.
Lar*_*ens 77
根据您无法删除NTFS文件系统卷上的文件或文件夹(需要显示JavaScript),以下内容应该有效(请注意它使用UNC路径).
rd "\\?\C:\holds bad subdir\20120530-04 "
Run Code Online (Sandbox Code Playgroud)
请务必使用cmd.exe执行此操作.它似乎不适用于PowerShell的Remove-Item(rd).
另见: