在我的情况下,我需要从ac或c ++代码源调用powershell脚本,发现很少的链接非常笨拙而且不适合c ++,我只是想要一个路线图,如果它可能调用一个列出目录内容的powershell脚本来自用c或c ++编写的代码片段
答案 0 :(得分:2)
C ++代码:
#include<iostream>
#include <io.h> // For access().
#include <sys/types.h> // For stat().
#include <sys/stat.h> // For stat().
#include <string>
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");
}
}
答案 1 :(得分:2)
第一个错误:
#include <io.h> // For access().
访问权在此库中:
#include <cstdlib>
下一步:
错误:未在此范围内声明'system'
#include <unistd.h>
最后:
caractere '\'
是C / C ++的一个特殊问题,然后您必须添加另一个'\'
,如:
system("start powershell.exe C:\\users\\sqtk-mal\\script1.ps1");
答案 2 :(得分:0)
在C ++中
#include <cstdlib>
std::system("command");
在c
#include <stdlib.h>
system("command");
答案 3 :(得分:0)
#include<iostream>
#include <io.h> // For access().
#include <sys/types.h> // For stat().
#include <sys/stat.h> // For stat().
#include <string>
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秒(秒))