Send Parameter To CMD

為{幸葍}努か 提交于 2019-12-09 11:08:09

问题


How can i send parameters to CMD? for example send a path and start it from that path? How can i execute CMD commands? Thanks


回答1:


To start cmd.exe and immediately execute a command, use the /K flag:

procedure TForm1.FormCreate(Sender: TObject);
begin
  ShellExecute(Handle, nil, 'cmd.exe', '/K cd C:\WINDOWS', nil, SW_SHOWNORMAL);
end;

To run a command in cmd.exe and then immediately close the console window, use the /C flag:

procedure TForm1.FormCreate(Sender: TObject);
begin
  ShellExecute(Handle, nil, 'cmd.exe', '/C del myfile.txt', nil, SW_SHOWNORMAL);
end;



回答2:


You can also use the Process class - see an example below

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        


来源:https://stackoverflow.com/questions/3515867/send-parameter-to-cmd

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!