批處理檢測外部命令是否存在的模塊

編寫批處理時常常須要用到外部命令,一些經常使用的命令通常的系統都會有,可是一些精簡的系統上可能就沒有了,若是沒有作判斷就可能致使程序出現未知的錯誤.web

通常檢測文件是否存在可使用測試

IF EXIST filename 執行某個命令spa

 

可是這樣只能檢測當前目錄下或指定目錄的,而批處理的外部命令經過PATH變量來肯定位置的.正常狀況下能夠經過如下命令來肯定這個外部命令是否存在,3d

for %I in (find.exe) do if "%~$PATH:I"=="" echo find 命令存在code

 

爲了之後方便就寫了一個模塊,用於判斷命令是否存在.orm

  1. @echo off
  2. cls&echo.IF_EXIST.cmd by chenall 2009-09-29http://www.chenall.com
  3. echo.
  4. echo.功能:
  5. echo. 從環境變量PATH,當前目錄,程序所在目錄中查找指定的文件,若是找到就顯示並返回值0,不然就返回1
  6. echo.
  7. echo.使用方法:
  8. echo. 直接複製下面::模塊開始::到::模塊結束::之間的代碼到你的批處理程序中.而後使用如下命令調用.
  9. echo. CALL :IF_EXIST xxxx.xxx
  10. echo.
  11. echo.使用例子:
  12. echo. CALL :IF_EXIST find.exe || echo.find.exe 不存在
  13. echo.
  14. echo.注:只是簡單查找,而且不支持查找子目錄.主要用於批處理判斷某個外部命是否存在.
  15. echo. 實際應用中能夠刪除echo %~$PATH:1語句刪除輸出顯示,或者在調用時加一個>nul
  16. echo.
  17. echo.
  18. ECHO.如下是測試命令.
  19. ECHO.查找FIND.EXE
  20. CALL :IF_EXIST FIND.EXE || ECHO.FIND.EXE 不存在
  21. CALL :IF_EXIST FIND.EXE >nul ||echo.出錯了,find.exe不存在.
  22. ECHO.查找noEXIST.FILE
  23. CALL :IF_EXIST noEXIST.FILE || ECHO.noEXIST.FILE 不存在
  24. PAUSE
  25. GOTO :EOF
  26.  
  27. ::::::::::::::::::::::::模塊開始::::::::::::::::::::::::
  28. :IF_EXIST BY chenall QQ:366840202 2009-09-29
  29. SETLOCAL&PATH %PATH%;%~dp0;%cd%
  30. if "%~$PATH:1"=="" exit /b 1
  31. echo %~$PATH:1
  32. exit /b 0 http://www.chenall.com
  33. :::::::::::::::::::::::模塊結束:::::::::::::::::::::::::
相關文章
相關標籤/搜索