У меня есть простой код, который использует system () для загрузки файла в AppData с переменной% APPDATA%, я хочу использовать CreateProcessW вместо system, но по какой-то причине, когда я использую ту же команду в CreatProcess, он ищет«Working Dir» \% APPDATA% вместо действительного каталога AppData и выдает исключение.
Рабочий код системы ():
system("powershell.exe -command Invoke-WebRequest https://the.earth.li/~sgtatham/putty/latest/w32/putty.exe -OutFile '%APPDATA%\\putty.exe'");
Код CreateProcessW:
wchar_t cmdArgs[] = L"powershell.exe -command Invoke-WebRequest https://the.earth.li/~sgtatham/putty/latest/w32/putty.exe -OutFile '%APPDATA%\\putty.exe'";
CreateProcessW(NULL, cmdArgs, nullptr, nullptr, false, 0, nullptr, nullptr, &si, &pi)
Исключение:
Invoke-WebRequest : Could not find a part of the path 'G:\Projects\C++\PS_Tries\PS_Tries\%APPDATA%\putty.exe'.
At line:1 char:1
+ Invoke-WebRequest https://the.earth.li/~sgtatham/putty/latest/w32/put ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Invoke-WebRequest], DirectoryNotFoundException
+ FullyQualifiedErrorId : System.IO.DirectoryNotFoundException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
Как я могу заставить его расширять% APPDATA% как system ()?