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?
Vous pouvez utiliser le mot-clé exit. Voici un exemple de l'un de mes fichiers batch:
start myProgram.exe param1
exit
Utilisez la commande de démarrage pour empêcher le fichier de commandes d’attendre le programme. Rappelez-vous simplement de mettre une citation double 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 batch:
Start "" "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"
remarquez la double citation après le début.
Regardez la commande START, vous pouvez faire ceci:
START rest-of-your-program-name
Par exemple, ce fichier de commandes attendra la fin du bloc-notes:
@echo off
notepad c:\test.txt
Cependant, ceci ne:
@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 de commandes:
start "cmdWindowTitle" /B "javaw" -cp . testprojectpak.MainForm
Vous pouvez personnaliser la commande start
à votre guise pour votre projet, en respectant 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)
Tu devrais essayer ça. Il commence le programme sans fenêtre. En fait, il clignote une seconde mais disparaît assez rapidement.
start "name" /B myprogram.exe param1
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
Ma solution pour le faire à partir de l'interface graphique:
Créez un raccourci vers le programme que vous voulez exécuter.
Modifiez les propriétés du raccourci.
Définissez le champ TARGET
sur %COMSPEC% /C "START "" "PROGRAMNAME""
;
Définissez le champ RUN
sur minimized.
Prêt! Voyez comme vous l'aimez ...
PS: les paramètres du programme peuvent être insérés entre les deux guillemets finaux; La chaîne PROGRAMNAME
peut être un nom de fichier, un chemin relatif ou un chemin absolu. Si vous définissez un chemin absolu et effacez la lettre de lecteur et le point-virgule, cela fonctionnera avec une clé USB quelle que soit la lettre que l'ordinateur hôte lui attribue. .. (si vous placez le raccourci dans le même dossier et faites précéder le nom du fichier du programme dans PROGRAMNAME
par la variable %CD%
, les chemins correspondront toujours; le même truc peut être utilisé dans le champ START IN
).
Si ce fichier de commandes est quelque chose que vous voulez exécuter comme prévu ou toujours; vous pouvez utiliser l'outil de planification Windows et il ne s'ouvre pas dans une fenêtre au démarrage du fichier de commandes.
Pour ouvrir Task Scheduler
:
'cmd'
taskschd.msc
-> entrezDu côté droit, cliquez sur Create Basic Task
et suivez les menus.
J'espère que cela t'aides.
Voici ma solution préférée. Il est pris d'un answer à 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.
J'avais ce problème et ce qui suit a fonctionné pour moi:
run myprogram.exe param1