Windows系统中如何在CMD和PowerShell向/dev/null写入文件?
解决CMD与PowerShell中向/dev/null等效目标复制/解压的问题
CMD环境下的解决方案
1. rar.exe解压到等效/dev/null的问题
CMD里的NUL是特殊设备文件,但rar.exe x命令的目标参数要求是合法目录,不能直接指定NUL。要实现丢弃解压内容,可通过临时目录中转:
- 创建临时空目录:
mkdir temp_rar_null - 执行解压命令,指定临时目录为目标:
rar.exe x fileToBeExtracted.rar temp_rar_null\ - 解压完成后删除临时目录:
rmdir /s /q temp_rar_null
如果只是需要屏蔽解压过程的输出信息(不是丢弃文件),可以用输出重定向:rar.exe x fileToBeExtracted.rar -o- >NUL 2>&1,但此方法仍会保存解压后的文件。
PowerShell环境下的解决方案
1. 复制文件到等效/dev/null
PowerShell中没有NUL设备,直接用copy或Copy-Item指定NUL会报错,可通过以下两种方式实现:
- 调用CMD的copy命令:
cmd /c copy foo.bar NUL - 读取文件内容并丢弃:
Get-Content foo.bar -Raw | Out-Null(小文件推荐),或[System.IO.File]::ReadAllBytes("foo.bar") | Out-Null(大文件更高效)
2. rar.exe解压到等效/dev/null
和CMD逻辑一致,通过临时目录中转后删除:
# 创建临时目录 $tempDir = New-Item -ItemType Directory -Path "$env:TEMP\rar_temp_null" # 执行解压 rar.exe x fileToBeExtracted.rar "$tempDir\" # 强制删除临时目录及内容 Remove-Item -Path $tempDir -Recurse -Force
内容的提问来源于stack exchange,提问作者janjin
相关产品推荐
相关产品推荐

