zoukankan      html  css  js  c++  java
  • 批处理检测外部命令是否存在的模块

    编写批处理时经常需要用到外部命令,一些常用的命令一般的系统都会有,但是一些精简的系统上可能就没有了,如果没有做判断就可能导致程序出现未知的错误.

    一般检测文件是否存在可以使用

    IF EXIST filename 执行某个命令

     

    但是这样只能检测当前目录下或指定目录的,而批处理的外部命令通过PATH变量来确定位置的.正常情况下可以通过以下命令来确定这个外部命令是否存在,

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

     

    为了以后方便就写了一个模块,用于判断命令是否存在.

    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. :::::::::::::::::::::::模块结束:::::::::::::::::::::::::
  • 相关阅读:
    个人理解的块状格式化上下文
    行框与浮动与清除浮动
    关于offset,scroll,position
    C++常用字符串操作和UTF-8和GBK之间的转换以及判定(转)
    MFC使用LoadBitmap方法加载位图文件失败解决方案(转)
    MFC在子线程中创建窗口(PostMessage方法)
    MFC线程间消息传递(转)
    MFC对话框常用操作文章收藏
    C++ 跨dll传递string类型参数执行出错问题
    C++ windows API函数末尾A和W的意义(转)
  • 原文地址:https://www.cnblogs.com/androidme/p/3573432.html
Copyright © 2011-2022 走看看