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


当前回答

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

的文件:

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

或者,对于目录:

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

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

其他回答

在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也可以通过编程方式工作。例如:

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

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

在Windows中,NUL似乎实际上是任何文件夹中的虚拟路径。就像…,。在任何文件系统中。

使用任何带NUL的文件夹都可以。

的例子,

echo 1 > nul
echo 1 > c:\nul
echo 1 > c:\users\nul
echo 1 > c:\windows\nul

与Linux上的/dev/null具有相同的效果。

这是在64位的Windows 7上测试的。

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

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

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

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

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

的文件:

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

或者,对于目录:

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

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