J'ai un script batch que j'utilise pour lancer un programme, tel que notepad.exe
. Lorsque je double-clique sur ce fichier de commandes, le bloc-notes démarre normalement, mais la fenêtre noire du cmd
qui a lancé notepad.exe
reste en arrière-plan. Que dois-je faire pour lancer notepad.exe
et faire disparaître la fenêtre cmd?
edit: est plus compliqué que d'utiliser \I
.
Le cmd
appelle cygwin
et cygwin
démarre notepad
. j'utilise
start \I \path\cygwin\bin\bash.exe
et la première fenêtre (cmd) disparaît, mais une deuxième fenêtre (\ cygwin\bin\bash.exe) est toujours en arrière-plan. Dans le script cygwin j'ai utilisé notepad.exe &
puis quittez.
start "" "%SystemRoot%\Notepad.exe"
Garder le ""
entre le début et votre chemin d’application.
Explication ajoutée:
Normalement, lorsque nous lançons un programme à partir d’un fichier de commandes comme ci-dessous, nous avons les fenêtres noires à l’arrière-plan, comme l’a dit OP.
%SystemRoot%\Notepad.exe
Cela était dû au bloc-notes qui s'exécutait dans la même commande Invite (processus). La commande Invite se ferme APRÈS que le bloc-notes soit fermé. Pour éviter cela, nous pouvons utiliser la commande start
pour démarrer un processus séparé comme celui-ci.
start %SystemRoot%\Notepad.exe
Cette commande est correcte tant qu'elle n'a pas d'espace dans le chemin. Pour gérer l’espace dans le chemin au cas où, nous avons ajouté le "
citations comme ça.
start "%SystemRoot%\Notepad.exe"
Cependant, l’exécution de cette commande ne ferait que lancer une autre invite vierge de commande. Pourquoi? Si vous recherchez le start /?
, la commande start
reconnaîtra l’argument entre les "
comme titre de la nouvelle commande Invite à lancer. Donc, pour résoudre cela, nous avons la commande comme ceci:
start "" "%SystemRoot%\Notepad.exe"
Le premier argument de ""
est de définir le titre (que nous avons défini comme vide) et le second argument de "%SystemRoot%\Notepad.exe"
est la commande cible à exécuter (qui prend en charge les espaces dans le chemin).
Si vous devez ajouter des paramètres à la commande, ajoutez-les simplement entre guillemets, à savoir:
start "" "%SystemRoot%\Notepad.exe" "<filename>"
Utilisation start notepad.exe
.
Plus d'infos avec start /?
.
La façon la plus simple est de commencer par start
start notepad.exe
Ici vous pouvez trouver plus d’informations sur start
%ComSpec% /c %systemroot%\notepad.exe
Hmm ... je le fais dans l'un de mes fichiers batch comme celui-ci, sans utiliser CALL ou START:
%SystemRoot%\notepad.exe ..\%URI%
GOTO ENDF
Cygwin n'est cependant pas installé sur Windows XP.