Pour le moment, mon fichier batch ressemble à ceci:
myprogram.exe param1
Le programme démarre mais la fenêtre DOS reste ouverte. Comment puis-je le fermer?
Pour le moment, mon fichier batch ressemble à ceci:
myprogram.exe param1
Le programme démarre mais la fenêtre DOS reste ouverte. Comment puis-je le fermer?
Réponses:
Vous pouvez utiliser le mot-clé exit. Voici un exemple de l'un de mes fichiers batch:
start myProgram.exe param1
exit
exit
dans un fichier batch.
start "VPN" "C:\Program Files (x86)\Cisco\Cisco AnyConnect Secure Mobility Client\vpnui.exe"
Utilisez la commande de démarrage pour empêcher le fichier de commandes d'attendre le programme. N'oubliez pas de mettre un double guillemet vide devant le programme que vous souhaitez exécuter après "Démarrer". Par exemple, si vous souhaitez exécuter Visual Studio 2012 à partir d'une commande par lots:
Start "" "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"
remarquez le double guillemet après le début.
start <window name> <program name>
Regardez la commande START, vous pouvez faire ceci:
START rest-of-your-program-name
Par exemple, ce fichier de commandes attendra la fermeture du bloc-notes:
@echo off
notepad c:\test.txt
Cependant, cela ne va pas:
@echo off
start notepad c:\test.txt
De ma propre question :
start /b myProgram.exe params...
fonctionne si vous démarrez le programme à partir d'une session DOS existante.
Sinon, appelez un script vb
wscript.exe invis.vbs myProgram.exe %*
La méthode Windows Script Host Run () prend:
Voici invis.vbs:
set args = WScript.Arguments
num = args.Count
if num = 0 then
WScript.Echo "Usage: [CScript | WScript] invis.vbs aScript.bat <some script arguments>"
WScript.Quit 1
end if
sargs = ""
if num > 1 then
sargs = " "
for k = 1 to num - 1
anArg = args.Item(k)
sargs = sargs & anArg & " "
next
end if
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False
C'est la seule chose qui a fonctionné pour moi lorsque j'ai essayé d'exécuter une classe java à partir d'un fichier batch:
start "cmdWindowTitle" /B "javaw" -cp . testprojectpak.MainForm
Vous pouvez personnaliser la start
commande comme vous le souhaitez pour votre projet, en suivant la syntaxe appropriée:
Syntax
START "title" [/Dpath] [options] "command" [parameters]
Key:
title : Text for the CMD window title bar (required)
path : Starting directory
command : The command, batch file or executable program to run
parameters : The parameters passed to the command
Options:
/MIN : Minimized
/MAX : Maximized
/WAIT : Start application and wait for it to terminate
/LOW : Use IDLE priority class
/NORMAL : Use NORMAL priority class
/HIGH : Use HIGH priority class
/REALTIME : Use REALTIME priority class
/B : Start application without creating a new window. In this case
^C will be ignored - leaving ^Break as the only way to
interrupt the application
/I : Ignore any changes to the current environment.
Options for 16-bit WINDOWS programs only
/SEPARATE Start in separate memory space (more robust)
/SHARED Start in shared memory space (default)
Vous devriez essayer ceci. Il démarre le programme sans fenêtre. Il clignote en fait pendant une seconde mais disparaît assez rapidement.
start "name" /B myprogram.exe param1
"title"
option est importante. Si le chemin du programme comprend des espaces, il doit être entouré de guillemets, nous devons donc en ajouter "title"
pour éviter l'échec.
Comment résoudre le "problème d'espace" et les dépendances locales:
@echo off
cd "C:\Program Files\HeidiSQL"
start heidisql.exe
cd "C:\Program Files (x86)\Google\Chrome\Application"
start chrome.exe
exit
Des tas de réponses à cette question déjà, mais je publie ceci pour clarifier quelque chose d'important, bien que ce ne soit pas toujours le cas:
Start "C:\Program Files\someprog.exe"
Peut causer des problèmes dans certaines versions de Windows, car il Start
s'attend en fait à ce que le premier jeu de guillemets soit un titre de Windows. Il est donc conseillé de commencer par citer un commentaire ou un commentaire vide:
Start "" "C:\Program Files\someprog.exe"
ou
Start "Window Title" "C:\Program Files\someprog.exe"
Ma solution pour faire cela à partir de l'interface graphique:
Créez un raccourci vers le programme que vous souhaitez exécuter;
Modifiez les propriétés du raccourci;
Remplacez le TARGET
champ par %COMSPEC% /C "START "" "PROGRAMNAME""
;
Modifiez le RUN
champ en minimisé.
Prêt! Voyez comment vous l'aimez ...
PS: les paramètres du programme peuvent être insérés entre les deux guillemets finaux; la PROGRAMNAME
chaîne peut être un nom de fichier, un chemin relatif ou un chemin absolu - si vous mettez un chemin absolu et effacez la lettre du lecteur et le point-virgule, cela fonctionnera dans une clé USB, quelle que soit la lettre que l'ordinateur hôte lui attribue. . (De plus, si vous placez le raccourci dans le même dossier et précédez le nom de fichier du programme PROGRAMNAME
avec la %CD%
variable, les chemins correspondront toujours; la même astuce peut être utilisée dans le START IN
champ).
Si ce fichier de commandes est quelque chose que vous souhaitez exécuter comme prévu ou toujours; vous pouvez utiliser l'outil de planification de Windows et il ne s'ouvre pas dans une fenêtre lorsqu'il démarre le fichier de commandes.
Pour ouvrir Task Scheduler
:
'cmd'
taskschd.msc
-> entrezDu côté droit, cliquez Create Basic Task
et suivez les menus.
J'espère que cela t'aides.
Voici ma solution préférée. Il est tiré d'une réponse à une question similaire.
Utilisez un script VBS pour appeler le fichier de commandes:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\path\to\your\batchfile.bat" & Chr(34), 0
Set WshShell = Nothing
Copiez les lignes ci-dessus dans un éditeur et enregistrez le fichier avec l'extension .VBS.