当存在名为 nul 的文件时,nul 如何工作

How does nul work when a file called nul exists

如果 nul 永远不能成为 Windows 中的文件,如果它在所有目录中使用 OS 创建了一个名为 "nul" 的文件怎么办nul 的规则。例如,如果在 CMD 中执行 'echo 1234>nul',数据会被写入 nul 还是会被丢弃?

Nul 不是对文件的引用,它是 Windows 的一部分,当执行 >nul 时,它不会将它写入文件 nul,而只是被忽略

if for example 'echo 1234>nul' was performed in CMD or would it be discarded?

它会被丢弃。

请注意以下示例,它创建了一个名为 nul 的文件,然后调用了 echo 5678>nul。现有文件 nul 未更改。

C:\temp>echo 1234>\?\%cd%\nul

C:\temp>dir /b /a-d
nul

C:\temp>type \?\%cd%\nul
1234

C:\temp>echo 5678>nul

C:\temp>type \?\%cd%\nul
1234

C:\temp>del \?\%cd%\nul

C:\temp>

有关 \?\ 语法的详细信息,请参阅 Win32 File Namespaces