首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > windows >

关于.bat批处理的有关问题。初学者再次

2012-03-14 
关于.bat批处理的问题。菜鸟再次求救!首先先说一下需求。公司要求我写一个脚本,脚本的开头是检测系统是否安

关于.bat批处理的问题。菜鸟再次求救!
首先先说一下需求。
  公司要求我写一个脚本,脚本的开头是检测系统是否安装了7z,并且设置了环境变量(脚本后面会用到7z进行解压)。

现在的问题是这样,如果用.bat脚本获取环境变量的去判断是否设置了7z的话。万一7z的安装路径为:"c:/8-zip",或者其他的名字,那环境变量肯定就不包含7-zip这些关键字。所以这个不妥。

我的思路是这样,写一个bat脚本

call 7z (如果未设置环境变量,就会提示'7z'不是内部或外部命令.....)

然后它会继续往下面的脚本执行下去。下面要用的7z的脚本就悲催了。。。

如果判断注册表是否安装了7z的话,又怕安装是安装了。但环境变量没有设置。悲催。很纠结,公司要求,木有办法!我是搞java的,非让我写脚本...

判断注册表也有个问题,万一我用的7z是从别的机拷过来直接用的,注册表肯定是没信息的...就算环境变量里有,也未必叫7-zip,烦死了


有没有高手可以加一个判断(本人刚学bat两天,菜鸟)

if call 7z 如果调用7z命令错误就停止往下执行,并且给出提示

Thank you!


[解决办法]
call 7z
if %errorlevel%==0 (echo 找到了) else echo 没找到
[解决办法]

探讨
引用:
call 7z
if %errorlevel%==0 (echo 找到了) else echo 没找到


提示是有了,但脚本依然会往下执行!这样肯定不行了!

[解决办法]
这个批处理的结构最好是像楼上那样使用goto了...
事实上虽然goto类语句在编程中被严格限制使用,但在批处理中却太常用了...
[解决办法]
BatchFile code
@echo offcall 7zif %errorlevel% neq 0 (    goto :end)echo hello world:end 

热点排行