Comment puis-je réduire l'invite de commande à partir de mon fichier bat
J'ai ce fichier bat et je veux minimiser la fenêtre cmd quand je le lance:
@echo off
cd /d C:\leads\ssh
call C:\Ruby192\bin\setrbvars.bat
ruby C:\leads\ssh\put_leads.rb
Fondamentalement, je veux que la fenêtre de commande réduite immédiatement. Des idées sur comment faire cela?
Vous devez vous connecter pour publier un commentaire.
Il y a un moyen intéressant d'exécuter le script minimisé en lui faisant redémarrer lui-même réduit au minimum. Voici le code à mettre dans le début de votre script:
Comment il fonctionne
Lorsque le script est exécuté
IS_MINIMIZED
n'est pas définie (if not DEFINED IS_MINIMIZED
) donc:set IS_MINIMIZED=1
.Script démarre une copie de lui-même à l'aide de commencer commande
&& start "" /min "%~dpnx0" %*
où:""
- vide de titre de la fenêtre./min
- commutateur pour minimisé."%~dpnx0"
- chemin d'accès complet à votre script.%*
- en passant par tous les votre script paramètres.Puis script initial terminé son travail:
&& exit
.Pour la route copie de la variable de script
IS_MINIMIZED
est définie par le script d'origine jusqu'à ce qu'il saute de l'exécution de la première ligne et passe directement à la logique de script.Remarques
exit
, sinon la fenêtre cmd ne serait pas fermé après l'exécution du script.Si votre script n'accepte pas les arguments que vous pourriez utiliser argument comme un drapeau au lieu de la variable:
if "%1" == "" start "" /min "%~dpnx0" MY_FLAG && exit
ou le plus court
if "%1" == "" start "" /min "%~f0" MY_FLAG && exit
Utiliser le
start
de commande, avec la/min
commutateur pour minimisé. Par exemple:Depuis que vous avez spécifié un fichier de commandes en tant qu'argument, le processeur de commande est exécutée, en passant la
/k
commutateur. Cela signifie que la fenêtre restera à l'écran une fois la commande terminée. Vous pouvez modifier ce comportement en faisant explicitement l'exécution decmd.exe
vous-même et en passant les commutateurs appropriés si nécessaire.Alternativement, vous pouvez créer un raccourci vers le fichier de commandes (sont des fichiers PIF toujours autour), puis modifier ses propriétés de sorte qu'il commence réduite.
start
de commande. Mettez toutes les commandes à l'intérieur du fichier de commandes, ou appelezstart
plusieurs fois.La seule façon que je sais, c'est en créant un raccourci Windows pour le fichier de commandes et la modification de ses propriétés pour exécuter masquée par défaut.
Si vous souhaitez démarrer le lot à Gagner-Run /autostart, j'ai découvert que j'solution sympa ici https://www.computerhope.com/issues/ch000932.htm & https://superuser.com/questions/364799/how-to-run-the-command-prompt-minimized
cmd.exe
est nécessaire que le début est pas de commande de windows qui peuvent être exécutés en dehors d'un lot/c
= sortie après le début est fini^& exit
partie s'assure que la fenêtre se ferme, même si le lot ne prend pas fin avecexit
Cependant, la première cmd n'est pas encore réduite.
À l'aide de PowerShell, vous pouvez réduire à partir du même fichier sans ouvrir une nouvelle instance.
Aussi
-window hidden
et-window normal
est disponible à tout cacher ou de les restaurer.source: https://stackoverflow.com/a/45061676/1178975
Encore un autre outil 3ème partie qui est capable de réduire la fenêtre de la console à tout moment (pas seulement lors du lancement du script) est Tcl avec le TWAPI extension:
ici
tclkitsh.exe
est dans le CHEMIN d'accès et est l'un destclkit-cli-*-twapi-*.exe
fichiers téléchargeables à partir de sourceforge.net/projects/twapi/files/Tcl les fichiers binaires/Tclkits avec TWAPI/. Je la préfère à la beaucoup plus légermin.exe
mentionné dans Bernard Chen répondre parce que je utiliser TWAPI pour de nombreuses autres fins déjà.Si vous tapez ce texte dans votre fichier bat:
Il sera immédiatement minimiser dès qu'il ouvre le programme. Vous voyez seulement un bref éclair d'elle et elle disparaîtra.
Vous pouvez essayer d'exécuter un script comme suit
enregistrer le fichier en tant que filename.js
Vous pouvez réduire l'invite de commande pendant l'exécution, mais vous aurez besoin de deux scripts supplémentaires: windowMode et getCmdPid.bat:
Une autre option qui fonctionne très bien pour moi est d'utiliser ConEmu, voir http://conemu.github.io/en/ConEmuArgs.html
Une façon de " minimiser la fenêtre cmd est de réduire la taille de la console à l'aide de quelque chose comme...
Vous pouvez réduire les COLS de 18 ans et les LIGNES à 1 si vous le souhaitez.
L'avantage est qu'il fonctionne sous WinPE, 32-bits ou 64-bits, et ne nécessite pas de 3ème partie de l'utilitaire.
Une option est de trouver l'un des divers utilitaires qui permettent de modifier l'état de la fenêtre de la cours d'exécution fenêtre de console et de faire un appel à partir du script de commandes.
Vous pouvez l'exécuter en tant que la première chose dans votre script de commandes. Voici deux de ces outils:
min.exe
http://www.paulsadowski.com/wsh/cmdprogs.htm
cmdow
http://www.commandline.co.uk/cmdow/index.html
nircmdc.exe
pour des trucs comme ça, mais pour quelque raison il ne serait pas réduire la fenêtre active lorsque c'était une fenêtre de console. Cependant,cmdow
a très bien fonctionné!cmdow @ /min
était de savoir comment j'ai fait, par où@
est de savoir comment indiquer que vous souhaitez cibler la fenêtre active. (Je suis sous Windows 10.)