Я искал способ выполнить bat-файл из моего x ++-кода.
Я пробовал это approach, но когда мой код доходит до process.Start()
, ничего дальше не происходит.
Использование WINApi::Shellexecute()
не является возможным для меня, поскольку мне это нужно для запуска в пакетном режиме. Вот код, в котором я сейчас работаю:AX 2012, Как я могу выполнить .bat-скрипт из x ++
System.Diagnostics.Process process;
System.Diagnostics.ProcessStartInfo processStartInfo;
;
new InteropPermission(InteropKind::ClrInterop).assert();
process = new System.Diagnostics.Process();
processStartInfo = new System.Diagnostics.ProcessStartInfo();
processStartInfo.set_FileName(@'C:\temp\testbat.bat');
process.set_StartInfo(processStartInfo);
process.Start();
process.WaitForExit();
process.Close();
info('Done');
Я не знаком с X ++, но, возможно, попробуйте запустить 'C: \ Windows \ system32 \ cmd.exe' с аргументами'/с "C: \ Temp \ testbat.bat" '? Сам пакетный файл не является исполняемым. Это просто связано с 'cmd.exe'. Если вы можете получить переменные среды, расположение 'cmd.exe' хранится в'% COMSPEC% '-' System.Environment :: GetEnvironmentVariable ('COMSPEC') '[Я бы предположил] (http: // stackoverflow. ком/а/28748207/+1683264). – rojo