[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 关于%errorlevel%问题

本帖最后由 w3cs 于 2012-6-26 10:32 编辑

请教大家个问题,如下代码:
@echo off
@echo.
@echo Apache service is stopped
net stop apache >nul 2>nul
if %errorlevel% equ 0 (
   @echo Apache service stopped successfully.
) else (
   @echo Apache service stopped failed.
)
@echo.
@echo Squid service is stopped
net stop squid >nul 2>nul
if %errorlevel% equ 0 (
   @echo Squid service stopped successfully.
) else (
   @echo Squid service stopped failed.
)
taskkill /f /im httpd.exe >nul 2>nul
taskkill /f /im squid.exe >nul 2>nul
@echo.
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\GNU /f >nul 2>nul
C:
if not exist "C:\Apache\bin" (
   @echo "C:\Apache\bin" directory does not exist.
) else (
   sc getkeyname "Apache"|findstr "1060" >nul 2>nul
if %errorlevel% neq 0 (
      @echo Apache service already dose not exist.
) else (
   cd C:\Apahce\bin 2>nul
   httpd -k uninstall -n "Apache" >nul 2>nul
if %errorlevel% neq 0 (
   @echo Apache service uninstall failed.
) else (
   @echo.
   @echo Removing the Apache service
   @echo The Apache service has been removed successfully.
)))
cd\
if not exist "C:\squid\sbin" (
   @echo "C:\squid\sbin" directory does not exist.
) else (
   sc getkeyname "Squid"|findstr "1060" >nul 2>nul
if %errorlevel% neq 0 (
      @echo Squid service already dose not exist.
) else (
      cd C:\squid\sbin 2>nul
      squid -r >nul 2>nul
if %errorlevel% neq 0 (
   @echo Squid service uninstall failed.
) else (
   @echo.
   @echo Removing the Squid service
   @echo The Squid service has been removed successfully.
)))
@pause

问题是,apache、squid服务同样不存在,
为什么判断apache服务时候%errorlevel% ==1,,而判断squid时候%errorlevel%==0。。
测试发现不管squid服务存不存在都是0

不是很了解%errorlevel%如何使用。或是以上代码该如何改进。
各位大虾多多提意见。谢谢了。

============================================================================
目的:
卸载apache服务,
1.判断 C:\Apache\bin 目录是否存在
如果不存在,显示目录不存在,否则继续
2.判断服务是否存在 如果不存在,显示服务已不存在,否则继续
3.卸载服务,如果卸载失败,显示失败,成功,显示卸载成功。

卸载squid服务,
1.判断 C:\squid\sbin 目录是否存在
如果不存在,显示目录不存在,否则继续
2.判断服务是否存在 如果不存在,显示服务已不存在,否则继续
3.卸载服务,如果卸载失败,显示失败,成功,显示卸载成功。

返回列表