Как вызвать скрипт powershell из кода C

В моем случае мне нужно было вызвать скрипт powershell из источника кода ac или c ++, найти несколько ссылок, которые были довольно неуклюжими и не очень хорошими с c ++, я просто хочу дорожную карту, если это возможно, вызывая скрипт powershell, который перечисляет содержимое каталога из кода фрагмент написан на с или с ++

-1

Решение

Код 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");
}
}
2

Другие решения

Первая ошибка:

#include <io.h>   // For access().

доступ находится в этой библиотеке:

#include <cstdlib>

Следующий :

ошибка: «система» не была объявлена ​​в этой области

#include <unistd.h>

И наконец :

Каратере '\' специальный Caractere для C / C ++, то вы должны добавить еще один '\' лайк :

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

В C ++

#include <cstdlib>

std::system("command");

В с

#include <stdlib.h>

system("command");
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 секунд)

0
По вопросам рекламы [email protected]