运行CMD命令并将结果获取到字符串变量

Running cmd commands and getting results to a string variable

本文关键字:获取 字符串 变量 结果 CMD 命令 运行      更新时间:2023-10-16

如何运行cmd命令并将输出输入到字符串变量?示例:

string result = ExecuteFunction("ipconfig");

现在"结果"包含:

Windows IP Configuration
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix  . :
......

这种笨拙的情况正在发生,而没有显示任何CMD屏幕,全部来自程序。Windows平台当然。

您可以构建管道:

在Linux上:

#include <cstdio>
#include <iostream>
#include <vector>
int main() {
    FILE* fp = popen("ifconfig", "r");
    if(fp) {
        std::vector<char> buffer(4096);
        std::size_t n = fread(buffer.data(), 1, buffer.size(), fp);
        if(n && n < buffer.size()) {
            buffer.data()[n] = 0;
            std::cout << buffer.data() << 'n';
        }
        pclose(fp);
    }
}

对于Windows,您可以使用'_popen',然后将'ifconfig'更改为'ipconfig'

此问题的标准解决方案,因为时间远古是使用命令行重定向将标准输出发送到文本文件,然后将文件读取到字符串中。

您没有提供足够的上下文来响应代码。在C/C 中,您可以使用_popen()。在.net中,此答案可能会有所帮助。重定向控制台输出到单独的程序中的文本框