我正在尝试通过system()
命令执行PowerShell命令,但是由于字符串中的空格而遇到异常,我尝试了一些操作,但仍然遇到了相同的异常。
代码:
system("powershell.exe -command Invoke-WebRequest http://example.com/myEXE.exe -OutFile C:\\Program Files\\myEXE.exe");
这是我得到的例外:
Invoke-WebRequest : A positional parameter cannot be found that accepts argument 'Files\myEXE.exe'. At line:1 char:1 + Invoke-WebRequest http://example.com/myEXE.exe -OutFile C:\Program File ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
答案 0 :(得分:0)
我认为这应该可行:
#include <iostream>
#include <bits/stdc++.h>
int main(){
std::cout << "trying system command" << std::endl;
system("powershell.exe -command Invoke-WebRequest https://make.sure.valid.url.to.test.otherwise.will.fail.anyways -OutFile 'C:/Program` Files/myEXE.exe'");
}
`字符应允许您正确地逃脱空间。