CMD set /p "=%%~x "<NUL - 什么是<NUL?

Thu*_*per 5 command-line cmd.exe

所以,我在 上发现了很多>NUL,它将标准输出重定向到 NULL,但我遇到过

set /p "=VARNAME"<NUL
Run Code Online (Sandbox Code Playgroud)

并且没有找到任何有关它的文档。

到目前为止,我发现它添加了一个回车符(至少这是观察到的行为),因为当我删除它时,我必须为此处答案中找到的脚本的每次迭代按 Enter 键:通过获取驱动程序版本命令行窗口

谁能帮助我理解这是什么,或者更好的是,哪里有关于这实际上在做什么的文档?

dbe*_*ham 5

<nul只是将标准输入重定向到 NUL,从而有效地禁用输入。使用它set /p是一种常见的技巧,用于将信息打印到屏幕上而不发出换行符。

例如:

set /p "=This prints everything " <nul
set /p "=on one line." <nul
Run Code Online (Sandbox Code Playgroud)

产量:

This prints everything on one line.
Run Code Online (Sandbox Code Playgroud)

请注意,“everything”和“on”之间的空格放置在第一行的末尾,而不是第二行的开头,因为前导空白通常会被 SET /P 删除。