这些命令位于启用了延迟扩展的 bat 文件中。我正在尝试检查不存在的命令,以便如果它失败,我的程序不会挂断,并且我有一个可以帮助我的标志。
这里的标志是path_check
:
set /a path_check=1
echo !PATH! | ( findatr /i "C:\\Windows\\System32;" 2>NUL || echo "here")
这会成功打印“here”:
set /a path_check=1
echo !PATH! | ( findatr /i "C:\\Windows\\System32;" 2>NUL || set /a path_check=1
)
echo !path_check!
这将打印 1 而不是 0。
我不能将任何事情归因于这种不一致的行为。如果命令存在但失败,否则程序响应正常。
编辑
根据回复,我想强调我使用的是不存在的命令,而不是返回错误但存在的命令。findatr
不是错字,这是故意的,因为我想检查一个不存在的命令。