![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 12:52 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何获取wmic的返回值 |
| 可打印版本 1,121 / 7 |
| 第1楼 czweb | 发表于 2010-03-28 14:17 |
| 初级用户 发帖 75 积分 75 | |
|
如何获取wmic的返回值 set aa=wmic computersystem where Name="%COMPUTERNAME%" call JoinDomainOrWorkgroup Name="sohu.com" username="temp" password="temp" fjoinoptions=1 accountou=null
if %aa% == 0 ( echo 成功 goto :Next ) 这样子不行,高手来指点一下吧 |
|
| 第2楼 Hanyeguxing | 发表于 2010-03-28 14:35 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
|
1,执行一个命令,然后读其输出中受否含有关键词来判断。
2,执行一个命令,然后从%ERRORLEVEL%的返回代码来判断。 3,执行一个命令,然后检查被修改对象是否发生正确的变化来判断。 对于你提供的事例,这三种方法都可以使用(你的批处理本身就写错了)。 例如,从wmic或注册表读相应的值,来判断是否为希望修改的值。由于wmic的返回代码比较复杂,所以一般不使用%ERRORLEVEL%来判断wmic是否正常执行。 [ Last edited by Hanyeguxing on 2010-3-28 at 14:52 ] |
|
| 第3楼 czweb | 发表于 2010-03-28 14:46 |
| 初级用户 发帖 75 积分 75 | |
|
%ERRORLEVEL%不行,wmic不管什么参数都是返回成功,只有ReturnValue = 0;时才是对的,
是不是要用for循环读取外部文件来判断呀,不太会,帮人到底给写一下行吗 |
|
| 第4楼 Hanyeguxing | 发表于 2010-03-28 14:54 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
Originally posted by czweb at 2010-3-28 14:46: 当wmic的返回信息中包含“错误”时,就会有%ERRORLEVEL%。 但如“无可用范例”等,是不会返回0以外的代码的。 WMIC可以get你尝试修改过的值,reg读取对应的注册表,都可以用啊 例如wmic computersystem where "name='abc'" call rename 123更改计算机名abc为123 这个时候就可以读%COMPUTERNAME%是否为123来判断。 [ Last edited by Hanyeguxing on 2010-3-28 at 15:00 ] |
|
| 第5楼 czweb | 发表于 2010-03-28 15:00 |
| 初级用户 发帖 75 积分 75 | |
|
因为我写一个错误的域、用户名和密码,也是返回成功,
C:\Documents and Settings\cz>wmic computersystem where Name="%COMPUTERNAME%" cal 所以只有判断ReturnValue才是有效的 [ Last edited by czweb on 2010-3-28 at 15:02 ] |
|
| 第6楼 Hanyeguxing | 发表于 2010-03-28 15:02 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
|
那就读ReturnValue是否为你需要的值来判断呗
|
|
| 第7楼 czweb | 发表于 2010-03-28 15:03 |
| 初级用户 发帖 75 积分 75 | |
|
可惜不会写,能帮忙吗
![]() |
|
| 第8楼 lxzzr | 发表于 2010-04-01 09:10 |
| 初级用户 发帖 12 积分 27 | |
Originally posted by czweb at 2010-3-28 02:46 PM: 错!!! 【1】%ERRORLEVEL%不是不行; 【2】ReturnValue = 0不一定是对的。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |