gpt4 book ai didi

batch-file - CMD 这个命令对 : dir >NUL 有什么好处

转载 作者:行者123 更新时间:2023-12-05 05:20:33 26 4
gpt4 key购买 nike

我正在分析一个不再在这里工作的前 worker 的代码,他使用了很多这个命令:

dir >NUL

我知道这会将输出重定向到“Nul 设备”并且 CMD.EXE 将其解释为 dir 1>Nul 但我不明白它的用途。他在评论中写道:重置错误级别。

例子:

for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set _Year=%%c&set _Month=%%a&set _Day=%%b)
set _Day=%_Day: =%
set _TODAY_FORMATTED=%_Year%%_Month%%_Day%
:: Self Check
:: Reset errorlevel
dir >NUL
set /a _TEST=%_TODAY_FORMATTED%-1
set _rc=%errorlevel%
:: Reset errorlevel
dir >NUL
if %_rc% NEQ 0 call :SELFCHECKERROR& goto end

最佳答案

它所做的正是评论所说它所做的:-)

C:\pax> dir x:
The device is not ready.

C:\pax> echo %errorlevel%
1

C:\pax> dir >nul:

C:\pax> echo %errorlevel%
0

错误级别用于将错误从可执行文件(不幸的是不是每个可执行文件都设置错误级别)传回命令 shell。

执行一个已知成功的程序是重置它的安全方法(a) 尽管 dir 并不是一个好的选择,因为它可能需要一些时间来遍历当前目录中的所有文件。像 ver >nul: 这样的命令可能更好。


(a) 不要认为您可以简单地执行set errorlevel=0,错误级别是一个“特殊”变量报告系统状态 - 如果您设置它,则会创建一个真实变量,然后拒绝报告 future 命令的实际错误级别。

关于batch-file - CMD 这个命令对 : dir >NUL 有什么好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44322536/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com