pai 發問時間: 電腦與網際網路程式設計 · 7 年前

windows batch如何將執行結果儲存至變數

請問一下,linux系統可以將直結果直接儲存至變數,例如

a=$(netstat -an | grep 5900)

echo $a

請問windows有類似的方法將"netstat -an | findstr ESTABLISHED | find /i "5900" /c"存入變數嗎?

萬分感謝

已更新項目:

可以不要使用需要編譯的程式語言嗎?

謝謝

1 個解答

評分
  • j
    Lv 4
    7 年前
    最佳解答

    #include <string>

    #include <iostream>

    #include <stdio.h>

    #include <windows.h>

    std::string exec(char* cmd)

    {

    FILE* pipe = _popen(cmd, "rwb");

    if (!pipe) return "ERROR";

    char buffer[128];

    std::string result = "";

    while(!feof(pipe))

    {

    if(fgets(buffer, 128, pipe) != NULL)

    {

    if(strlen(buffer)<128)

    {

    result += buffer;

    }

    else if(strlen(buffer)>128)

    {

    result.append(buffer,128);

    }

    }

    /*if(fgets(buffer, 128, pipe) != NULL)

    {

    std::cout<<buffer;

    }*/

    }

    _pclose(pipe);

    return result;

    }int main(int argc, char *argv[])

    {

    std::string out=exec("netstat -an | findstr ESTABLISHED | find /i \"5900\" /c");

    std::cout<<out<<std::endl;

    system("PAUSE");

    return EXIT_SUCCESS;

    }

    參考資料: Me
還有問題?馬上發問,尋求解答。