Comment puis-je exécuter une ligne de commande Windows en arrière-plan ?
Comment puis-je exécuter une ligne de commande Windows en arrière-plan, sans qu'elle n'interagisse avec l'utilisateur actif ?
Comment puis-je exécuter une ligne de commande Windows en arrière-plan, sans qu'elle n'interagisse avec l'utilisateur actif ?
C'est un peu tard mais je suis tombé sur cette question en cherchant moi-même la réponse et j'ai trouvé ceci :
START /B program
qui, sous Windows, est la plus proche de la commande Linux :
program &
Depuis le système d'aide de la console :
C:\>HELP START
Starts a separate window to run a specified program or command.
START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B]
[command/program] [parameters]
"title" Title to display in window title bar.
path Starting directory.
B Start application without creating a new window. The
application has ^C handling ignored. Unless the application
enables ^C processing, ^Break is the only way to interrupt
the application.
Un problème que j'ai vu avec cela est que vous avez plus d'un programme qui écrit dans la fenêtre de la console, cela devient un peu confus et confus. Pour qu'il n'interagisse pas avec l'utilisateur, vous pouvez rediriger la sortie vers un fichier :
START /B program > somefile.txt
Je suppose que vous voulez dire : Exécutez quelque chose en arrière-plan et récupérez immédiatement la ligne de commande avec le programme lancé en continu.
START "" program
Qui est l'équivalent Unix de
program &
Votre question est assez vague, mais il existe un post sur ServerFault qui peut contenir les informations dont vous avez besoin. La réponse y décrit comment exécuter une fenêtre de fichier batch cachée :
Vous pourriez l'exécuter en silence en utilisant un fichier de script Windows à la place. La méthode d'exécution vous permet d'exécuter un script en mode invisible. Créez un fichier
.vbs
comme celui-ci :Dim WinScriptHost Set WinScriptHost = CreateObject("WScript.Shell") WinScriptHost.Run Chr(34) & "C:\Scheduled Jobs\mybat.bat" & Chr(34), 0 Set WinScriptHost = Nothing
et planifiez-le. Le deuxième argument de cet exemple définit le style de la fenêtre. 0 signifie “cacher la fenêtre”.
START /MIN program
le précédent est assez proche de son homologue Unix program &
Vous pouvez utiliser ce script PowerShell (commenté !):
# Create the .NET objects
$psi = New-Object System.Diagnostics.ProcessStartInfo
$newproc = New-Object System.Diagnostics.Process
# Basic stuff, process name and arguments
$psi.FileName = $args[0]
$psi.Arguments = $args[1]
# Hide any window it might try to create
$psi.CreateNoWindow = $true
$psi.WindowStyle = 'Hidden'
# Set up and start the process
$newproc.StartInfo = $psi
$newproc.Start()
# Return the process object to the caller
$newproc
Enregistrez-le sous forme de fichier .ps1
. Après avoir activé l'exécution du script (voir Activation des scripts dans the PowerShell tag wiki ), vous pouvez lui passer une ou deux chaînes de caractères : le nom de l'exécutable et éventuellement la ligne d'arguments. Par exemple :
.\hideproc.ps1 'sc' 'stop SomeService'
Je confirme que cela fonctionne sous Windows 10.
C'est ainsi que mon serveur interne PHP passe en arrière-plan. Donc techniquement, il devrait fonctionner pour tous.
start /B "" php -S 0.0.0.0:8000 &
Merci
Une réponse connexe, avec 2 exemples :
call START /B “my calc” “calc.exe”
call start /min “n” “notepad.exe”
call START /MIN “my mongod” “%ProgramFiles%\MongoDB\Server\3.4\bin\mongod.exe”
Espérons que cela vous aidera.
Vous pouvez voir la bonne façon de procéder dans ce lien : Comment exécuter une tâche planifiée sans qu'une fenêtre de commande apparaisse
En résumé, vous devez cocher la case “Exécuter si l'utilisateur est connecté ou non”. Les informations d'identification de l'utilisateur de la tâche doivent être saisies après avoir appuyé sur “Ok”.
vient de tomber sur ce fil de discussion windows 7, utilisant le power shell, qui exécute des exécutables en arrière-plan, exactement comme le nom de fichier unix
exemple : start -NoNewWindow nom de fichier
aide au démarrage
NAME Processus de démarrage
SYNTAX Processus de démarrage [-FilePath] [[-ArgumentList] ] [-Attention] [-Répertoire de travail] [-Charger le profil de l'utilisateur] [-Pas de nouvelle fenêtre] [-PassThru] [-Erreur standard de redirection] [-Entrée standard de redirection] [- RedirectStandardOutput] [-Attendez] [-WindowStyle {Normal | Hidden | Minimized | Maximized}] [-UseNewEnvironment] []
Start-Process [-FilePath] <string> [[-ArgumentList] <string[]>] [-WorkingDirectory <string>] [-PassThru] [-Verb
<string>] [-Wait] [-WindowStyle <ProcessWindowStyle> {Normal | Hidden | Minimized | Maximized}]
[<CommonParameters>]
ALIASES saps start