标题: 输入command/z可以看到命令的errorlevel
[打印本页]
作者: polynominal
时间: 2004-2-2 00:00
标题: 输入command/z可以看到命令的errorlevel
有人写过吗?:-)
写batch file的时候,很多errorlevel搞不清楚,怎么办呢?
输入command/z,以后运行的外部命令的errorlevel就可以
看见了
作者: Wengier
时间: 2004-2-3 00:00
谁都知道嘛。。
作者: willsort
时间: 2004-2-3 00:00
Re polynominal:
可惜DOS6。X及其以下版本不支持,我目前正在构想获得ERRORLEVEL的高效率的BATCH,不存在我所说的问题很快可以完成了。
Re Wengier:
太绝对了吧?
作者: roy
时间: 2004-2-3 00:00
Quote: |
以下是引用willsort在2004-2-3 13:40:21的发言:
Re polynominal:
可惜DOS6。X及其以下版本不支持,我目前正在构想获得ERRORLEVEL的高效率的BATCH,不存在我所说的问题很快可以完成了。 |
|
這個就是:
:: Author: Leonardo Pignataro (secret_doom@hotmail.com)
:: Trace errorlevel
@echo off
for %%? in (0 1 2) do if errorlevel=%%?00 set D1=%%?
for %%? in (0 1 2 3 4 5 6 7 8 9) do if errorlevel=%D1%%%?0 set D2=%%?
for %%? in (0 1 2 3 4 5 6 7 8 9) do if errorlevel=%D1%%D2%%%? set D3=%%?
set err=%D1%%D2%%D3%
for %%? in (D1 D2 D3) do set %%?=
echo %err%
作者: willsort
时间: 2004-2-3 00:00
Re roy:
思路不错,可以作为我完成下帖的参考。只是麻烦你 IF ERRORLEVEL 后面别用=好不好,会加深误解的。
http://model.chinajewelry.net/dos/dosbbs/dispbbs.asp?boardID=6&ID=9358
[此贴子已经被作者于2004-2-3 20:31:15编辑过]
作者: Wengier
时间: 2004-2-3 00:00
willsort:
关于COMMAND /Z,因为我在网站中曾做为DOS的未公开用法介绍过,所以我才认为大家应该都已知道了。
其实ERR2ENV也许更好用。
至于DOS 6.x及以下版本,那就没有什么意义了。那么旧的DOS版本,已没有什么使用介值,当然也不支持这些新功能了。
作者: roy
时间: 2004-2-3 00:00
Quote: |
以下是引用willsort在2004-2-3 20:29:42的发言:
Reroy:
思路不错,可以作为我完成下帖的参考。只是麻烦你IFERRORLEVEL后面别用=好不好,会加深误解的。
http://model.chinajewelry.net/dos/dosbbs/dispbbs.asp?boardID=6&ID=9358 |
|
ERRORLEVEL是變數啊,就如%COMSPEC%一樣,可以用"="的
更何況錯的不是我,是Leonardo Pignataro 啊
[此贴子已经被作者于2004-2-4 7:15:23编辑过]
作者: Wengier
时间: 2004-2-4 00:00
Roy:不对呀,又不是WinNT/2K/XP的“命令提示符”下。纯DOS下的ERRORLEVEL不是变量,而是IF的一种特别用法,即:IF ERRORLEVEL ...
作者: willsort
时间: 2004-2-4 00:00
Re Wengier:
现在的人见了宝贵资料收藏的多,研读的少,多少人都是用到了再上论坛来问。所以,信息的普及不在于其是否公开,而在于受众是否有获知的渴望。
Re Roy:
Wengier 的说法很对,errorlevel 是作为 if 的命令分支使用的。即使在98和xp下我也没有见到这个环境变量。而如果这个ERRORLEVEL是环境变量,那这个程序本身就失去了意义,因为程序的目的就是为了将ERRORLEVEL值赋给环境变量的。即使假设Leonardo Pig是作为变量使用的,那也应该用==,否则就是语法错误。所以这里可以肯定他是作为命令分支使用的。
而作为命令分支,ERRORLEVEL 与value之间的关系就应该是大于等于,而非等于,所以我才说=有误导之嫌。而为什么用=可以使用呢?因为ERRORLEVEL 与value之间本是用空格隔的,而DOS命令行对单个=又是忽略解释的,这点与;和空格是一致的,不信你可以做一个测试。
::test.bat
echo First:%1
echo Second:%2
c:\test 111 222
c:\test 111;222
c:\test 111=222
另外,在dos命令行中还存在很多做特殊解释的字符,大家可以多测试一下。重定向符号太熟悉了,就免了
[此贴子已经被作者于2004-2-4 18:47:12编辑过]
作者: dosfroum
时间: 2005-10-1 10:49
請問我在windows 2000底下打了 怎麻沒反應
commnad下或是cmd下
打COMMAND /Z 只跳到下一行
作者: bush
时间: 2005-10-1 15:54
标题: FREEDOS就沒有這個功能!