Perl:在Windows中停止使用perl“system”启动的命令

在Perl中,我在两个不同的Windows命令行(Cmd)中启动了两个命令,如下所示:

system("start $cmd1"); system("start $cmd2"); 

基本上,这两个命令继续运行,直到我停止使用“CTRL + C”。

我的问题是:

如何发送“CTR + C”到每个命令行(或命令)?

谢谢。

我想你可以使用

 my $pid = system(1, $cmd1); # One of the following: kill(INT => $pid); # Sends Ctrl-C kill(TERM => $pid); # Sends Ctrl-Break kill(KILL => $pid); # Calls TerminateProcess($handle, 9) waitpid($pid, 0); 

我通过创建两个分离的进程来解决它。 看下面的代码:`

 use Win32::Process; use Win32; sub ErrorReport{ print Win32::FormatMessage( Win32::GetLastError() ); } Win32::Process::Create($ProcessObj, "C:\\winnt\\system32\\notepad.exe", "notepad temp.txt", 0, DETACHED_PROCESS, ".")|| die ErrorReport(); $ProcessObj->Suspend(); $ProcessObj->Resume(); $ProcessObj->Wait(INFINITE); 

`