Отправить параметр в CMD - PullRequest
       12

Отправить параметр в CMD

7 голосов
/ 18 августа 2010

Как я могу отправить параметры в CMD?например, отправить путь и запустить его с этого пути?Как я могу выполнить команды CMD?Спасибо

Ответы [ 2 ]

9 голосов
/ 18 августа 2010

Чтобы запустить 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 голосов
/ 28 декабря 2015

Вы также можете использовать класс 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        
...