Как запустить командную строку из Delphi?
Как я могу выполнить эту команду из моего приложения Delphi?
C:myapppathappfolder>имя приложения.exe / stext сохранить.txt
Я попробовал следующий код:
ShellExecute(0, nil, 'cmd.exe', 'cd C:myapppathappfolder', nil, SW_Hide);
ShellExecute(0, nil, 'cmd.exe', 'appname.exe /stext save.txt', nil, SW_Hide);
Но это не сработало. Может ли кто-нибудь предложить решение?
1 ответ:
Для запуска команды CMD необходимо использовать флаг
/Ccmd.exe:Тем не менее, это создаст две разные сессии, так что это не будет работать. Но вы можете использовать ShellExecute для запускаShellExecute(0, nil, 'cmd.exe', '/C cd C:\myapppath\appfolder', nil, SW_HIDE); ShellExecute(0, nil, 'cmd.exe', '/C appname.exe /stext save.txt', nil, SW_HIDE);appname.exeнапрямую, например:ShellExecute(0, nil, 'appname.exe', '/stext save.txt', nil, SW_HIDE);Но вам нужно правильно указать имена файлов.
Я бы сделал
var path: string; begin path := ExtractFilePath(Application.ExeName); ShellExecute(0, nil, PChar(Application.ExeName), PChar('/stext "' + path + 'save.txt"'), nil, SW_HIDE); end;В случае, если
appname.exeявляется текущим приложением. В противном случае заменитеApplication.ExeNameна полный путьappname.exe.
Comments