我正在运行Windows 7 64bit for WAMP 2
服务器。
我正在使用batch script
从Windows Com Component
运行我的程序,例如:
C:\wamp\bin\php\php5.3.13\php.exe C:\wamp\www\test\command.php
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run($command, 7, false);
现在,当我发现有多少"cmd.exe"
程序在运行时,它会使用以下命令列出所有进程:
tasklist /svc /fi "imagename eq cmd.exe"
然后我使用php脚本使用以下命令杀死它们:
$output = shell_exec('taskkill /F /IM "cmd.exe"');
在这里,会发生什么,并非所有cmd.exe
窗口都关闭。
上述代码中可能出现什么错误? Some windows are closed, while some remains open which is executing the command.
请帮忙。
答案 0 :(得分:1)
找到解决方案[虽然可以提供更好的建议]
首先需要check and kill
php tasks exists
,然后是command prompt will kill
:
// It will first list out all `php.exe` tasks running
$output = shell_exec('tasklist /svc /fi "imagename eq php.exe"');
print_r($output);
echo "<br> ------------------------------------ <br>";
// It will first list out all `cmd.exe` tasks running
$output = shell_exec('tasklist /svc /fi "imagename eq cmd.exe"');
print_r($output);
echo "<br> ------------------------------------ <br>";
// kills php.exe tasks
$php_output = shell_exec('taskkill /F /IM "php.exe"');
print_r($output);
echo "<br> ------------------------------------ <br>";
// kills cmd.exe tasks
$cmd_output = shell_exec('taskkill /F /IM "cmd.exe"');
print_r($output);
echo "<br> ------------------------------------ <br>";
die(ucfirst('all tasks killed'));
希望对所有人都有帮助!