如何在 Windows 上删除名为“NUL”的文件?

如何在 Windows 上删除名为“NUL”的文件?

我有一台 Windows XP 机器(NTFS 文件系统),在其中发现了一个名为 的文件NUL。我无法以任何常规方式删除此文件。该文件似乎归AdministratorSYSTEM组所有,与同一目录中的任何其他文件不同(其他文件归我的用户 ID 所有)。

我该如何删除这个文件?它是从哪里来的?

答案1

尝试

Del \\?\C:\My\Path\NUL

在命令提示符中。

有关详细信息,请参阅此 Microsoft 支持文章:您无法删除 NTFS 文件系统卷上的文件或文件夹,在“原因 5:文件名包含 Win32 名称空间中的保留名称”。

答案2

或者如果你有赛格威安装后,您可能想知道,它对这些文件或文件夹没有问题。特别是,

rm -r /cygdrive/c/path/to/the/file/or/folder/you/want/to/delete

在 Cygwin 终端中输入将删除名为的文件或文件夹或包含该文件或文件夹。这也适用于其他特殊文件名,nul例如CONPRNAUXCOM1COM2COM3COM4,,,,,,,,,,,。COM5COM6COM7COM8COM9LPT1LPT2LPT3LPT4LPT5LPT6LPT7LPT8

答案3

我在这里添加这个,因为它在谷歌搜索结果中排名很高,而且我也遇到了类似的问题文件夹名为 NUL。不幸的是,上述修复没有帮助。我查看的大量其他内容也没有帮助。

我尝试了rmdir\\?\C:\My\Path\NUL,但 rmdir\\.\C:\My\Path\NUL没有成功,还尝试了使用 SourceTree 安装中的 bash 的几个命令。毫无进展。

最后,我使用DIR /X /Acmd 列出了父目录中的短名称。这返回了NUL~1我的 NUL 文件夹。

然后将其用于标准命令rmdir /s NUL~1并最终解决了该问题。

答案4

如果您拥有 PowerShell 6.1.0(2018 年 9 月)或更高版本:

https://github.com/PowerShell/PowerShell/releases/tag/v6.1.0

你可以做这样的事情:

Remove-Item -LiteralPath \\?\C:\NUL

另一个选择是这个 Go 程序:

package main
import "os"
func main() {
   os.Remove(`\\?\C:\NUL`)
}

相关内容