web-dev-qa-db-fra.com

Invite de commandes: exécuter des scripts en arrière-plan (équivalent de Linux & bg)

Sous Linux, vous pouvez faire ceci:

$ php blah.php> some.log &

exécuter blah.php en arrière-plan. C'est pareil que Ctrl+z puis la commande bg.

Existe-t-il un équivalent de/des deux pour l'invite de commande Windows?

22
DOOManiac

Windows a une fonctionnalité similaire à & de Linux, pour lancer des processus tels qu'ils ne prennent pas le contrôle de votre console. Au lieu d'un indicateur de ligne de commande, il s'agit d'un préfixe de commande.

Exécutez simplement votre commande avec start devant elle, en tant que telle: C:\> start myprog.exe

Cela fonctionne aussi avec les commandes, pas seulement les exécutables: C:\> start dir

Cela va démarrer une nouvelle fenêtre de console et exécuter la commande à l'intérieur de celle-ci.

Si vous ne voulez pas qu'une nouvelle fenêtre de console apparaisse lors de l'exécution de la commande, utilisez le commutateur /B, comme ceci: C:\> start /B myprog.exe

Il existe plusieurs autres options que vous pouvez spécifier pour configurer le mode d’exécution de la commande. Vous pouvez les comprendre en lisant l'aide de start en utilisant start /?.

40
Ben Richards

Cela peut exécuter un fichier en arrière-plan à partir de la commande Invite ou d'un fichier de commandes.

@Echo off
Echo Set WshShell = CreateObject("WScript.Shell")   >>%temp%\ghost.vbs
Echo WshShell.Run chr(34) ^& "MyFile" ^& Chr(34), 0 >>%temp%\ghost.vbs
Echo Set WshShell = Nothing                         >>%temp%\ghost.vbs
start %temp%\ghost.vbs
timeout /t 1 >nul
del %temp%\ghost.vbs

Remplacez maintenant MyFile par le fichier que vous souhaitez exécuter en arrière-plan.

1
Anthony