从 C++ 应用程序获取 PowerShell 脚本输出

     2023-03-04     157

关键词:

【中文标题】从 C++ 应用程序获取 PowerShell 脚本输出【英文标题】:Get PowerShell script output from C++ App 【发布时间】:2020-10-09 16:20:39 【问题描述】:

哪种方法是使用 C++ 应用程序读取 PowerShell 脚本输出的更好方法。尝试使用以下代码,但无法获得输出。从控制台执行相同的 PowerShell 脚本是完全可以的,但希望获得 PowerShell 脚本的输出以在应用程序中使用相同的脚本。

system("start powershell.exe Set-ExecutionPolicy RemoteSigned \n");
system("start powershell.exe d:\\callPowerShell.ps1");
system("cls");

【问题讨论】:

【参考方案1】:

同样的问题也发生在我身上,以下是我的解决方法:将powershell的输出重定向到一个文本文件中,exe完成后,从文本文件中读取其输出。

std::string psfilename = "d:\\test.ps1";
std::string resfilename = "d:\\res.txt";
std::ofstream psfile;
psfile.open(psfilename);

//redirect the output of powershell into a text file
std::string powershell = "ls > " + resfilename + "\n";
psfile << powershell << std::endl;
psfile.close();

system("start powershell.exe Set-ExecutionPolicy RemoteSigned \n");
//"start": run in background
//system((std::string("start powershell.exe ") + psfilename).c_str());
system((std::string("powershell.exe ") + psfilename).c_str());
system("cls");

remove(psfilename.c_str());

//after the exe finished, read the result from that txt file
std::ifstream resfile(resfilename);
std::string line;
if (resfile.is_open()) 
    std::cout << "result file opened" << std::endl;
    while (getline(resfile, line)) 
        std::cout << line << std::endl;
    
    resfile.close();
    remove(resfilename.c_str());

【讨论】:

暂停程序,直到 powershell 脚本完成

...间】:2018-01-2218:39:34【问题描述】:我正在用C++编写一个应用程序,它需要从Windows10中获取已安装软件包的列表。我找到了一种通过Powershell脚本将其转储到文本文件中的方法。我像这样启动脚本:system("startpowershell.exe-wind 查看详情

从 Powershell 获取 Azure Active Directory 访问令牌

...间】:2018-02-1720:56:50【问题描述】:注册AzureActiveDirectory应用程序后,我在Azure门户中生成了一个应用程序ID和一个密钥。通过这对和我的Powershell脚本,我想生成一个访问令牌,我将在HTTP请求 查看详情

从 Powershell 启动 vNext 构建并获取工件

...动化我们的部署,我想根据给定的ChangeSetId重新构建一个应用程序。此构建完成后,我想获得构建的工件(.exe),以便我们可以部署它们。为了这个问题,我将重点放在“从构建中获取工件”部分。出于DevOps的目的 查看详情

从外部 c++ 程序获取结果

】从外部c++程序获取结果【英文标题】:Getresultfromexternalc++program【发布时间】:2021-09-1816:39:45【问题描述】:我在我的ubuntu18中安装了Qtcreator5.15。我查看了如何在Qtcreator上用C++绘制图形的文档,并希望使用Qpr​​ocess从名为“tes... 查看详情

如何使用 C# 从 C++ 应用程序获取调用堆栈?

】如何使用C#从C++应用程序获取调用堆栈?【英文标题】:HowcanIgetcallstackfromC++applicationusingC#?【发布时间】:2014-03-1110:51:33【问题描述】:我有C#/VB.NET应用程序,用于测试用C++编写的其他应用程序。如果C++应用程序没有响应,我... 查看详情

c# - 如何在运行时从模块代码中获取 PowerShell 模块版本

】c#-如何在运行时从模块代码中获取PowerShell模块版本【英文标题】:c#-HowtogetthePowerShellmoduleversionfrominsidethemodulecodeatruntime【发布时间】:2021-03-2705:30:55【问题描述】:我有一个用于实现PowerShell命令的C#PSCmdlet类,我想在运行命令... 查看详情

powershell此sharepointpowershell从web应用程序中的所有站点获取使用特定内容类型的列表的url。(代码片段)

查看详情

C++:从 URL 获取 HTTP 状态码

...布时间】:2010-03-0405:37:32【问题描述】:我正在开发一个应用程序,我必须点击一个URL并获取从该URL返回的HTTP状态代码。目前我正在使用WININET函数来实现这一点。实现这一点的代码:hOpen=InternetOpenA("MYAPP",INTERNET_OPEN_TYPE_DIRECT,NU 查看详情

从 C++ 中的 posix 信号处理程序获取对象属性

】从C++中的posix信号处理程序获取对象属性【英文标题】:getobjectpropertiesfromposixsignalhandlerinC++【发布时间】:2012-06-0405:59:32【问题描述】:我正在尝试让信号处理程序在C++中工作,但不知道如何使用某些类属性。信号处理程序在... 查看详情

C# 程序无法从 C++ COM 程序中获取字节数组

】C#程序无法从C++COM程序中获取字节数组【英文标题】:C#ProgramCan\'tGetByteArrayBackFromAC++COMProgram【发布时间】:2021-12-0813:01:45【问题描述】:我似乎无法在从COMC++程序填充的C#程序中获取字节数组。C#程序包含对C++DLL的引用,并通... 查看详情

C++:从 MIDI 消息(DWORD)中获取数据

...21:58:02【问题描述】:我用C++编写了一个简单的MIDI控制台应用程序。以下是全部内容:#include<windows.h>#include<iostream>#include<math.h>usingnamespacestd;vo 查看详情

从 C++ 库方法返回的“char*”获取 C# 字符串?

...时间】:2012-05-2822:58:39【问题描述】:我有一个在我的C#应用程序中使用的C++库。C++库中的一种方法返回char*。如何在我的C#应用程序中将char*转换为字符串?显然在我的C#应用程序中,此方法返回的数据类型是sbyte 查看详情

如何从 C++ 程序获取 Linux 上的主板 ID

】如何从C++程序获取Linux上的主板ID【英文标题】:HowtogetmotherboardIDonLinuxfromaC++program【发布时间】:2011-06-2611:54:45【问题描述】:我想在没有root权限的情况下从Linux(Ubuntu)上的C++程序检索主板ID。我知道dmidecode可以做到这一点,但... 查看详情

powershell 从命令输出中获取内容

】powershell从命令输出中获取内容【英文标题】:powershellgetcontentfromcommandoutput【发布时间】:2014-01-0123:53:49【问题描述】:我有来自外部命令的输出,例如:StatusPoolnameMediaTypeMS#ofmediaFree[MB]=====================================================... 查看详情

PowerShell - HTML 解析:从网站获取信息

】PowerShell-HTML解析:从网站获取信息【英文标题】:PowerShell-HTMLparsing:getinformationfromawebsite【发布时间】:2012-02-2115:20:30【问题描述】:更新,脚本正在使用PowerShellV3.0,谢谢@Doug我想使用以下PowerShell脚本从Lufthansa获取航班状态信... 查看详情

在 C++ 中录制时从设备获取声级

...述】:我想获得声级,所以我可以在录制声音时在我的SDL应用程序(平台是Linux)中显示它。我怎样才能做到这一点?我在我的应用程序中使用FMODAPI,但为了录制,我使用SoX(分叉并使用exec()来设置它-可能这可以做得更好,但... 查看详情

使用谷歌应用脚​​本从电子表格数据中检索行

...ogle应用脚本将表单数据写入电子表格。现在我想从Excel中获取与条件匹配的值(例如,按日期、用户名过滤)并使用应用脚本显示它们。我的电子表格有+-------------+-----------+- 查看详情

从 Qt C++ 中的另一个应用程序获取文本字段的值

】从QtC++中的另一个应用程序获取文本字段的值【英文标题】:GettingavalueofatextfieldfromanotherapplicationinQtC++【发布时间】:2011-06-1007:59:13【问题描述】:我只是想知道有没有办法得到另一个文本字段的值申请?Windows操作系统例如在... 查看详情