[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
通过以下测试可以确认
||并不是根据errorlevel来判断是否执行右侧的语句

Microsoft Windows [版本 5.2.3790]
(C) 版权所有 1985-2003 Microsoft Corp.

C:\Documents and Settings\Administrator>xx
'xx' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:\Documents and Settings\Administrator>echo %errorlevel%
9009

C:\Documents and Settings\Administrator>echo not set errorlevel
not set errorlevel

C:\Documents and Settings\Administrator>echo %errorlevel%
9009

C:\Documents and Settings\Administrator>echo not set errorlevel || echo not run
not set errorlevel

C:\Documents and Settings\Administrator>xx || echo run
'xx' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
run

C:\Documents and Settings\Administrator>


根据以下测试可以证明
||会在左侧代码未成功完成时置errorlevel为1

C:\Documents and Settings\Administrator>xx
'xx' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:\Documents and Settings\Administrator>echo %errorlevel%
9009

C:\Documents and Settings\Administrator>echo not set errorlevel || echo not run
not set errorlevel

C:\Documents and Settings\Administrator>echo %errorlevel%
9009

C:\Documents and Settings\Administrator>xx || echo run
'xx' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
run

C:\Documents and Settings\Administrator>echo %errorlevel%
1


根据以下测试可以证明
||是在右侧命令执行之前置errorlevel,而非整条语句执行完成后

C:\Documents and Settings\Administrator>xx
'xx' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:\Documents and Settings\Administrator>echo %errorlevel%
9009

C:\Documents and Settings\Administrator>xx || if errorlevel 1 if not errorlevel 2 echo errorlevel == 1
'xx' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
errorlevel == 1


综合以上论断
可以确认在||在左侧语句未成功完成时
会置errorlevel为1
同时启动执行右侧的语句
2

评分人数

    • plp626: 喜欢这样的论证;有理有据;PB + 10 技术 + 1
    • CrLf: 这个证明很有力技术 + 1
天的白色影子

TOP

返回列表