CMD中获取命令返回值

作者: Belmode | 来源:发表于2020-06-02 23:59 被阅读0次

    例如指令:
    tasklist|find /i "mongod.exe"
    返回的结果是:

    C:\Users\Ruby>tasklist|find /i "mongod.exe"
    mongod.exe                    8364 Console                    2    165,864 K
    

    可以通过一起bat脚本读取值:

    @echo off 
    for /f "tokens=2" %%i in ('tasklist^|find /i "mongod.exe"') do set val=%%i  
    ​
    echo %val%  
    pause
    

    其中:

    1. 如果 tokens=1,那么结果为mongod.exe
    2. 如果 tokens=3, 那么结果为Console
    3. 如果 tokens=4,那么结果为2
    4. 如果 tokens=5,那么结果为165,864
    5. 如果 tokens=5,那么结果为K

    也就是说,tokens读取的,是忽略空格的列的值!
    注意:如果要在命令中使用管道符,需要添加 ^ 符号

    一个完整的应用启停的例子:

    @echo off
    
    REM "如果是start那么按照后台启动的方式运行mongodb"
    REM "如果是stop,那么关闭mongodb"
    REM "如果是restart,那么重启""
    REM "默认前台启动mongod"
    
    if "%1"=="start" (
        cmd /C start /b mongod -f "D:\Program Files\mongodb-win32-x86_64-2012plus-4.2.6\mongod.conf" &&echo mongodb.exe已启动
    ) ^
    else if "%1"=="stop" (
        taskkill -f -im mongod.exe
    ) ^
    else if "%1"=="restart" (
        taskkill -f -im mongod.exe  > nul
        cmd /C start /b mongod -f "D:\Program Files\mongodb-win32-x86_64-2012plus-4.2.6\mongod.conf" && echo 已重新启动mongodb.exe
    ) ^
    else if "%1"=="status" (
        for /f "tokens=2" %%i in ('tasklist^|find /i "mongod.exe"') do set mpid=%%i  
        tasklist|find /i "mongod.exe" > nul && echo mongodb.exe运行中, pid为%mpid% || echo mongodb.exe未运行
    ) ^
    else  (
         tasklist|find /i "mongod.exe" > nul && echo mongodb.exe已启动,不必重复启动 ||  mongod -f "D:\Program Files\mongodb-win32-x86_64-2012plus-4.2.6\mongod.conf"
    )
    

    相关文章

      网友评论

        本文标题:CMD中获取命令返回值

        本文链接:https://www.haomeiwen.com/subject/ffvmzhtx.html