Windows上/dev/null的等价程序是什么?


当前回答

在Windows PowerShell中,你必须使用start和$NUL:

输入这个命令,假设mySum是你的应用程序的名称,5 10是你要发送的命令行参数。

start .\mySum  5 10 > $NUL 2>&1

start命令将启动一个分离的进程,效果与&类似。如果您正在运行的程序是控制台应用程序,则/B选项防止启动打开新的终端窗口。NUL在Windows中相当于/dev/null最后的2>&1将stderr重定向到stdout, stdout将全部指向NUL。

其他回答

在Windows PowerShell中,你必须使用start和$NUL:

输入这个命令,假设mySum是你的应用程序的名称,5 10是你要发送的命令行参数。

start .\mySum  5 10 > $NUL 2>&1

start命令将启动一个分离的进程,效果与&类似。如果您正在运行的程序是控制台应用程序,则/B选项防止启动打开新的终端窗口。NUL在Windows中相当于/dev/null最后的2>&1将stderr重定向到stdout, stdout将全部指向NUL。

唯一可以处理NUL的内置工具是旧的副本。 但请确保,您使用开关/b(二进制),否则内容将不会被OS缓存(这是我的目标)。

将目录(递归)放入操作系统缓存:

for /f "delims=" %f in ('dir /s /b /a-d D:\Solr\data') do @copy /b "%f" nul > nul

使用RamMap(来自Sysinternals)进行验证。

NUL也可以通过编程方式工作。例如:

freopen("NUL", "w", stderr);

按预期工作,无需创建文件。(MSVC + + 12.0)

乔恩·斯基特说得对。这里是Windows嵌入式文档中的null设备驱动程序页面(我不知道为什么它不在其他地方…)

这是另一个:

注册表中的空设备 特殊文件名 关于文件命名的更多信息

如果你需要在微软Windows中执行相当于Linux中/dev/null的符号链接,你可以打开和管理员的cmd并键入:

的文件:

mklink c:\path\to\file.ext NUL:

或者,对于目录:

mklink /D c:\path\to\dir NUL:

这将使文件/目录始终保持0字节,并仍然返回成功的每次写尝试。