В моем случае мне нужно было вызвать скрипт powershell из источника кода ac или c ++, найти несколько ссылок, которые были довольно неуклюжими и не очень хорошими с c ++, я просто хочу дорожную карту, если это возможно, вызывая скрипт powershell, который перечисляет содержимое каталога из кода фрагмент написан на с или с ++
Код 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");
}
}
Первая ошибка:
#include <io.h> // For access().
доступ находится в этой библиотеке:
#include <cstdlib>
Следующий :
ошибка: «система» не была объявлена в этой области
#include <unistd.h>
И наконец :
Каратере '\'
специальный Caractere для C / C ++, то вы должны добавить еще один '\'
лайк :
system("start powershell.exe C:\\users\\sqtk-mal\\script1.ps1");
В C ++
#include <cstdlib>
std::system("command");
В с
#include <stdlib.h>
system("command");
#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 секунд)