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

j5fpnvbx  于 2022-11-18  发布在  Windows
关注(0)|答案(8)|浏览(1038)

我在Windows 7上运行了一个在Cygwin下编译的程序,并将“NUL”作为输出文件名。它实际上没有抑制输出,而是在当前目录中创建了一个名为“NUL”的文件。(显然,即使在Windows上,它也希望“/dev/null”。)现在我被这个无法删除的“NUL”文件卡住了!
我已经试过了:

  • Windows资源管理器-错误:“无效的MS-DOS函数”(是的,这是认真的!)
  • 命令提示符使用“del NUL”-错误:文件名、目录名或卷标语法不正确。
  • 删除整个目录-与仅删除文件相同
  • remove()-也会失败

我如何才能摆脱这些NUL文件(我现在有几个),除了安装完整的Cygwin环境和编译一个C程序下Cygwin这样做?

uttx8gqw

uttx8gqw1#

打开命令提示符,使用以下命令先重命名NUL文件,然后再删除该文件:

C:\> rename \\.\C:\..\NUL. deletefile.txt
C:\> del deletefile.txt

使用\\.\前缀告诉高级文件I/O函数将未经解析的文件名传递给设备驱动程序-这样您就可以访问无效的名称。
阅读this article,了解Windows中的有效文件/路径名以及各种保留名称。

2wnc66cl

2wnc66cl2#

如果您安装了Git for Windows(v2.18),请执行以下操作
1.打开包含要删除的文件的目录
1.左键单击并选择Git Bash Here
1.在命令提示符下键入rm nul.json并按ENTER键,该文件现在应已删除。

注:这些截图显示了文件nul.topo.json的删除,这是另一个文件,我不能删除一个简单的删除。

lztngnrs

lztngnrs3#

如果你在Windows上安装了git,只需右键单击包含nul文件的文件夹-〉转到gitbash这里-〉然后根据文件类型键入“rm nul”或“rm nul.json”。

tjrkku2a

tjrkku2a4#

我也遇到过类似的问题,可能也是Cygwin造成的(因为我经常使用它),但我已经忘记了文件是如何创建的。
我也有麻烦删除它。我遵循了一些其他帖子的建议,并尝试启动到安全模式删除文件,虽然这没有什么用。提示从+xxbbcc不为我工作了。
然而,我能够使用Cygwin终端删除文件!Cygwin createth和Cygwin destroyeth。

flvlnr44

flvlnr445#

要删除位于此处的nul文件,请执行以下操作:C:\unix\cygwin\开发工具\nul
我只使用(仅在Windows 10上测试):删除\?\C:\unix\cygwin\dev\NUL

oyxsuwqo

oyxsuwqo6#

我用一种稍微不同的方法解决了这个问题。
我想我会在这里添加这个,因为它在谷歌结果中很高,我也有一个类似的问题,一个名为NUL的 * 文件夹 *。
我尝试了rmdir\\?\C:\My\Path\NULrmdir\\.\C:\My\Path\NUL没有任何成功,还尝试了几个命令使用bash从我的SourceTree安装。没有喜悦。
最后,我使用cmd中的DIR /X /A列出了父目录中的短名称,这显示了NUL文件夹的NUL~1,并确定了问题的关键。
然后在标准命令rmdir /s NUL~1中使用该命令,最终解决了该问题。

zpjtge22

zpjtge227#

我也有同样的问题。
如果您安装了WSL2,只需转到该目录并运行:

rm -f nul

在我的情况下,文件是小写的。你应该很好。

brjng4g3

brjng4g38#

尝试编写一个简短的C程序,调用Windows API来删除该文件。
http://msdn.microsoft.com/en-us/library/aa363915%28v=vs.85%29.aspx
如果不起作用,请尝试使用CreateFile()和FILE_FLAG_DELETE_ON_CLOSE打开文件的句柄,然后关闭该句柄。

相关问题