批处理文件中的“空”是什么?

dou*_*eep -17 batch-file

我很想知道什么是nul. 它通常用于:

我还以为是文件:

C:\Users\username> nul
Permission denied.

C:\Users\username> where nul
INFO: Could not find files for the given pattern(s).

C:\Users\username> where /r C:\ nul
INFO: Could not find files for the given pattern(s).
Run Code Online (Sandbox Code Playgroud)

我还从https://ss64.com阅读了这篇很棒的文章,其中说:

使用NUL 设备创建空文件。

然而,我不太明白。

小智 5

Nul作为文件存在于每个目录中。它吞下任何发送给它的东西。

保留名称。这些是指设备,例如,

copy filename con 
Run Code Online (Sandbox Code Playgroud)

它将文件复制到控制台窗口。

CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, 

COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, 

LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9

CONIN$, CONOUT$, CONERR$
Run Code Online (Sandbox Code Playgroud)

来自使用批处理重命名文件夹和子文件夹的问题

  • @double-beep nul 在内部实现为一个设备,但它的用法就像是一个文件名。它实际上是一个保留文件名。例如,`C:\Users\fred\Desktop\nul.txt` 是空设备,因为它使用保留名称 `nul`。该名称可以出现在文件规范中的*任何地方*。 (2认同)
  • @double-beep 您无法访问它。你可以输入`type nul`,它就会把它打印出来(即它不会打印任何东西,因为当你阅读它时,nul 就像一个空文件)。“权限被拒绝”消息意味着您只是不被允许运行它 - 它不是一个可执行文件。 (2认同)