由于ERRORLEVEL是一个环境变量,在我有机会在我的批处理文件中检查它之前,它的值是否可以更改?ERRORLEVEL是可靠的吗?
回答
环境变量属于当前的“过程”,因此它们不能从外部改变。如果您在批处理文件中检查相关命令后的错误级别,则应该检查正确的值。
您可以通过打开两个命令窗口,并进入第一证实了这一点:
c:> set errorlevel=7
然后第二:
c:> set errorlevel=9
然后返回到第一和:
c:> echo %errorlevel%
7
您应该非常小心地设置errorlevel
环境变量顺便说一下。这个特定的变量是一个特殊的变量,当你没有专门设置它时,它会自动提供前一个程序的返回码。
设置它显式覆盖此行为,唯一的恢复方法是使用if errorlevel N
而不是环境变量(它绕过环境变量),或使用set errorlevel=
删除覆盖。
@paxdiable:对于在一个cmd.exe窗口中设置的任何(env)变量,您对'%errorlevel%'环境变量的说法是正确的。它永远不会自动出现在任何其他已经打开的cmd.exe窗口中。 – 2010-08-11 18:01:52
是的,这是正确的。当我说错误级别是特殊的,那不是我所说的方面。没有env-var从流程跳转到流程。我只是警告反对设置错误级别,因为它具有特殊的行为通常,它设置防止。 – paxdiablo 2010-08-11 22:39:28
%errorlevel%
(它不是大小写敏感)是一个非常特殊的环境变量。这完全不意味着由用户或批处理脚本进行设置。
此外,你可能会碰到你执行调用set errorlevel=15
但张女士您成功执行set
命令的问题,可能必须重新设置%errorlevel%
你希望现在evaluete 0
。
如果您需要它
唯一“合法”的方式来评估%errorlevel%
环境变量,使用重复的if errorlevel
声明:
if errorlevel 0 do somecommand
if errorlevel 1 do somethingelse
...
if errorlevel 255 do lastalternative
一切是很危险的。如果您确实需要几行后使用当前%ERRORLEVEL%,然后使用类似
if errorlevel 0 do set myerrorlevel=0
,然后读出%myerrorlevel%
...
如果错误级别X对于错误级别> = X为真,则解析从0到255将导致始终执行0的命令。应该解析255到0(来自mod标志,不是我的评论..) – 2011-01-08 11:39:12
- 1. ContactsContract.Contacts.LAST_TIME_CONTACTED是可靠的吗?
- 2. activemq是可靠的吗?
- 3. MongoDB是可靠的吗?
- 4. Flux without React ..是可靠的选择吗?
- 5. Is!document.cookie可靠吗?
- 6. Python的ftplib STOR可靠吗?
- 7. AppEngine + django:依靠两者都可靠吗?
- 8. HTTP Referrer。它可靠吗?
- 9. 我可以依靠mod_rewrite吗?
- 10. 中止POST XHR可靠吗?
- 11. sched_getcpu()在Linux上可靠吗?
- 12. 字体嵌入可靠吗?
- 13. Laravel's Cache :: forever() - 可靠吗?
- 14. FindFirstFile,FindNextFile API不可靠吗?
- 15. 脚本延迟可靠吗?
- 16. simhash功能可靠吗?
- 17. localStorage在iPad上可靠吗?
- 18. 我可以依靠MSXML4吗?
- 19. SQL Azure报告可靠吗?
- 20. java.net.Socket.setSoTimeout是否可靠?
- 21. window.opener是否可靠?
- 22. Amazon SimpleDB比DynamoDB更可靠/可用吗?
- 23. 我可以依靠shell()的存在吗?
- 24. 使用Netbeans的Gits功能可靠吗?
- 25. PDO :: lastInsertId对于非常快速的插入是可靠的吗?
- 26. 总是设置可靠的环境变量吗?
- 27. 这是检查REQUEST_METHOD的可靠方法吗?
- 28. 与Editra 0.7.08是一个可靠的IDE吗?
- 29. 该查询是可靠的吗? (多JOIN在SQL)
- 30. 当auto_ptr未初始化时,get()是可靠的吗?
%ERRORLEVEL%** ** IS可靠,为大家谁扮演通过它的规则。在这场比赛中,谁的确经常是不可靠的,通常是用户没有按照规则玩牌......(我并不责怪用户 - 微软在这里设置的规则非常模糊。) – 2010-08-11 17:45:21