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

问题描述 投票:0回答:5

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

我已经尝试过:

  • Windows 资源管理器 - 错误:“无效的 MS-DOS 功能”(是的,这就是它所说的!)
  • 使用“del NUL”的命令提示符 - 错误:“文件名、目录名或卷 标签语法不正确。”
  • 删除整个目录 - 与删除文件相同
  • remove()
    在 C 程序中 - 也失败

如果没有安装完整的 Cygwin 环境并在 Cygwin 下编译 C 程序来做到这一点,我怎样才能摆脱这些 NUL 文件(我现在有几个)?

c windows null cygwin
5个回答
195
投票

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

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

使用

\\.\
前缀告诉高级文件 I/O 函数将未解析的文件名传递给设备驱动程序 - 这样您就可以访问其他无效的名称。

阅读这篇文章,了解 Windows 中的有效文件/路径名以及各种保留名称。


39
投票

如果您安装了适用于 Windows 的 Git (v2.18),请执行以下操作

  1. 打开包含要删除的文件的目录
  2. 左键单击并选择
    Git Bash Here
  3. 在命令提示符处键入
    rm nul.json
    并按 ENTER,现在应该删除该文件。

注意:这些屏幕截图显示了文件

nul.topo.json
的删除,这是我无法通过简单删除来删除的另一个文件。


8
投票

如果您在 Windows 上有 git,只需右键单击包含 nul 文件的文件夹 -> 转到此处的 gitbash -> 并根据文件类型输入“rm nul”或“rm nul.json”。


4
投票

我也有类似的问题。这也可能是由 Cygwin 引起的(因为我经常使用它),但我已经忘记了文件是如何创建的。

我也很难删除它。我遵循了其他一些帖子的建议,并尝试启动到安全模式来删除该文件,尽管这没有任何作用。 +xxbbcc 的提示对我来说也不起作用。

但是,我能够使用 Cygwin 终端删除该文件! Cygwin 创造,Cygwin 毁灭。


2
投票

要删除位于此处的 nul 文件: C:\uni

© www.soinside.com 2019 - 2024. All rights reserved.