Как я могу отправить параметры в CMD? например, отправить путь и запустить его с этого пути? Как я могу выполнять команды CMD? БлагодаряОтправить параметр CMD
7
A
ответ
9
Чтобы начать cmd.exe
и немедленно выполнить команду, используйте /K
флаг:
procedure TForm1.FormCreate(Sender: TObject);
begin
ShellExecute(Handle, nil, 'cmd.exe', '/K cd C:\WINDOWS', nil, SW_SHOWNORMAL);
end;
Для запуска команды в cmd.exe
, а затем сразу же закрыть окно консоли, используйте /C
флаг:
procedure TForm1.FormCreate(Sender: TObject);
begin
ShellExecute(Handle, nil, 'cmd.exe', '/C del myfile.txt', nil, SW_SHOWNORMAL);
end;
2
Вы также можете использовать класс Process - см. Пример ниже
AProcess := TProcess.Create(nil); // Create process
AProcess.Executable := 'cmd'; // Executable to run
AProcess.Parameters.Add('/T:B0'); // Set background colour
AProcess.Parameters.Add('/K'); // Keep open
AProcess.Parameters.Add('title'); // A title for cmd
AProcess.Parameters.Add('My Console'); // Title
AProcess.Parameters.Add('&&'); // Start a new command line
AProcess.Parameters.Add('cd'); // Change directory
AProcess.Parameters.Add('D:\X\'); // Path to Folder
{Set environment variable}
AProcess.Parameters.Add('&&'); // Start a new command line
AProcess.Parameters.Add('HOME='+MYSQL_DIR); // Set env example
AProcess.Parameters.Add('&&'); // Start a new command line
AProcess.Parameters.Add('mysql.exe'); // run mysql.exe
AProcess.Parameters.Add('--host=' + VAR_HOST); // Parameter server
AProcess.Parameters.Add('--port=' + VAR_PORT); // Parameter mysql server port
AProcess.Execute; // execute detatched process command window remains visible
AProcess.Free; // free memory
Спасибо за помощь, но есть небольшая проблема, когда я использую это: ShellExecute (Handle, nil, 'cmd.exe', '/ K cd C: \ WINDOWS', nil, SW_SHOWNORMAL); cmd будет выполняться, но не на моем введенном пути, он начинается с того места, где я сохранил проект. – Armin
Я приглашаю вас ознакомиться с [документацией по ShellExecute] (http://msdn.microsoft.com/en-us/library/bb762153.aspx), Armin. Там вы узнаете, для чего нужен пятый параметр. –
Я не знаю, в чем дело, но после некоторых попыток он работает правильно. спасибо, это была полезная помощь. – Armin