如何从C代码调用powershell脚本

在我的情况下,我需要从ac或c ++代码源调用一个powershell脚本,发现一些非常笨拙且不适合c ++的链接,我只是想要一个路线图,如果它可能调用一个PowerShell脚本,它列出了代码中的目录内容用c或c ++编写的片段

C ++代码:

#include #include  // For access(). #include  // For stat(). #include  // For stat(). #include  using namespace std; void main() { string strPath = "d:\\callPowerShell.ps1"; //access function: //The function returns 0 if the file has the given mode. //The function returns –1 if the named file does not exist or does not have the given mode if(access(strPath.c_str(),0) == 0) { system("start powershell.exe Set-ExecutionPolicy RemoteSigned \n"); system("start powershell.exe d:\\callPowerShell.ps1"); system("cls"); } else { system("cls"); cout << "File is not exist"; system("pause"); } } 

第一个错误:

 #include  // For access(). 

访问是在这个库中:

 #include  

下一个 :

错误:未在此范围内声明’system’

 #include  

最后:

caractere '\'是C / C ++的一个特殊的caractere然后你必须添加另一个'\'如:

 system("start powershell.exe C:\\users\\sqtk-mal\\script1.ps1"); 

在C ++中

 #include  std::system("command"); 

在c

 #include  system("command"); 
  #include #include  // For access(). #include  // For stat(). #include  // For stat(). #include  using namespace std; int main() { string strPath = "C:\users\sqtk-mal\script1.ps1"; //access function: //The function returns 0 if the file has the given mode. //The function returns –1 if the named file does not exist or does not have the given mode if(access(strPath.c_str(),0) == 0) { system("start powershell.exe Set-ExecutionPolicy RemoteSigned \n"); system("start powershell.exe C:\users\sqtk-mal\script1.ps1"); system("cls"); } else { system("cls"); cout << "File is not exist"; system("pause"); } } 

使用此代码时,代码块会出错

  -------------- Build: Debug in may3_1 (compiler: GNU GCC Compiler)--------------- mingw32-g++.exe -Wall -fexceptions -g -c C:\Users\sqtk-mal\Documents\codeblocks\may3_1\main.cpp -o obj\Debug\main.o C:\Users\\Documents\codeblocks\may3_1\main.cpp: In function 'int main()': C:\Users\\Documents\codeblocks\may3_1\main.cpp:11:25: error: incomplete universal character name \u string strPath = "C:\users\sqtk-mal\script1.ps1"; ^ C:\Users\\Documents\codeblocks\may3_1\main.cpp:11:25: warning: unknown escape sequence: '\s' C:\Users\\Documents\codeblocks\may3_1\main.cpp:11:25: warning: unknown escape sequence: '\s' C:\Users\\Documents\codeblocks\may3_1\main.cpp:18:80: error: 'system' was not declared in this scope system("start powershell.exe Set-ExecutionPolicy RemoteSigned \n"); ^ C:\Users\\Documents\codeblocks\may3_1\main.cpp:19:22: error: incomplete universal character name \u system("start powershell.exe C:\users\sqtk-mal\script1.ps1"); ^ C:\Users\\Documents\codeblocks\may3_1\main.cpp:19:22: warning: unknown escape sequence: '\s' C:\Users\\Documents\codeblocks\may3_1\main.cpp:19:22: warning: unknown escape sequence: '\s' C:\Users\\Documents\codeblocks\may3_1\main.cpp:24:27: error: 'system' was not declared in this scope system("cls"); ^ Process terminated with status 1 (0 minute(s), 0 second(s)) 

4个错误,4个警告(0分钟,0秒(s))