2010-12-15 80 views

Répondre

1

Je suggère d'utiliser la commande standard de PHP system. Il y a beaucoup d'informations et d'exemples dans official PHP site.

Il y a une question on SO a répondu pour les différences entre exec(), system() et passthru().

0

Ou vous pouvez utiliser:

$WshShell = new COM("WScript.Shell"); 
$oExec = $WshShell->Run(strCommand, [intWindowStyle], [bWaitOnReturn]); 

Ici vous pouvez trouver les params méthode d'exécution: http://msdn.microsoft.com/en-us/library/d5fk67ky%28v=vs.85%29.aspx

Et voici la classe COM doc: http://www.php.net/manual/en/class.com.php

Avec cette méthode, vous pouvez le faire beaucoup plus dans les fenêtres :). Je l'ai utilisé en raison du paramètre [bWaitOnReturn] que je ne pouvais pas faire en utilisant une autre méthode.

0

Voici un projet qui permet à PHP d'obtenir et d'interagir dynamiquement avec un vrai terminal cmd. Obtenez ici: https://github.com/merlinthemagic/MTS

Après avoir téléchargé vous suffit d'utiliser le code suivant:

//if you prefer Powershell, replace 'cmd' with 'powershell' 
$shellObj = \MTS\Factories::getDevices()->getLocalHost()->getShell('cmd'); 

$strCmd1 = 'run_app.exe -param "test" -name "tester"'; 
$return1 = $shellObj->exeCmd($strCmd1); 

Le retour vous donnera le retour de commande ou erreur de cmd, comme si vous étiez assis à la console. De plus, vous pouvez lancer n'importe quelle commande contre le $ shellObj, l'environnement est maintenu tout au long de la vie du script PHP. Ainsi, au lieu de regrouper les commandes dans un fichier de script, il suffit de les exécuter une par une à l'aide de la méthode exeCmd(), de cette façon vous pouvez également gérer le retour et toutes les exceptions.