На данный момент мой командный файл выглядит так:
myprogram.exe param1
Программа запускается, но окно DOS остается открытым. Как я могу закрыть это?
Вы можете использовать ключевое слово выхода. Вот пример из одного из моих командных файлов:
start myProgram.exe param1
exit
Используйте команду запуска, чтобы предотвратить ожидание программы командным файлом. Просто не забудьте поставить пустую двойную кавычку перед программой, которую вы хотите запустить после «Пуск» . Например, если вы хотите запустить Visual Studio 2012 из пакетной команды:
Start "" "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"
обратите внимание на двойную кавычку после запуска.
Посмотрите на команду СТАРТ, вы можете сделать это:
START rest-of-your-program-name
Например, этот пакетный файл будет ожидать выхода из блокнота:
@echo off
notepad c:\test.txt
Тем не менее, это не будет:
@echo off
start notepad c:\test.txt
Из моего собственного вопроса :
start /b myProgram.exe params...
работает, если вы запускаете программу из существующего сеанса DOS.
Если нет, вызовите скрипт vb
wscript.exe invis.vbs myProgram.exe %*
Метод Windows Script Host Run () принимает:
Вот 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
Это единственное, что сработало для меня, когда я попытался запустить класс Java из командного файла:
start "cmdWindowTitle" /B "javaw" -cp . testprojectpak.MainForm
Вы можете настроить команду start
так, как хотите для своего проекта, следуя правильному синтаксису:
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)
Вы должны попробовать это. Запускает программу без окна. На самом деле он мигает на секунду, но уходит довольно быстро.
start "name" /B myprogram.exe param1
Как решить «космическую проблему» и локальные зависимости:
@echo off
cd "C:\Program Files\HeidiSQL"
start heidisql.exe
cd "C:\Program Files (x86)\Google\Chrome\Application"
start chrome.exe
exit
Мое решение сделать это из графического интерфейса:
Создайте ярлык для программы, которую вы хотите запустить;
Изменить свойства ярлыка;
Измените поле TARGET
на %COMSPEC% /C "START "" "PROGRAMNAME""
;
Измените поле RUN
на свернутое.
Готовы! Посмотрите, как вам это нравится ...
PS: параметры программы могут быть вставлены между двумя окончательными кавычками; Строка PROGRAMNAME
может быть либо именем файла, либо относительным, либо абсолютным путем - если вы введете абсолютный путь и удалите букву диска и точку с запятой, то это будет работать в режиме большого пальца, независимо от того, какую букву ему назначает хост-компьютер. .. (также, если вы поместите ярлык в ту же папку и перед именем файла программы в PROGRAMNAME
укажите переменную %CD%
, пути всегда будут совпадать; один и тот же прием можно использовать в поле START IN
).
Если вы хотите запустить этот пакетный файл как запланировано или всегда; Вы можете использовать инструмент расписания Windows, и он не открывается в окне при запуске командного файла.
Чтобы открыть Task Scheduler
:
'cmd'
taskschd.msc
-> введитеС правой стороны нажмите Create Basic Task
и следуйте меню.
Надеюсь это поможет.
Вот мое предпочтительное решение. Он взят из ответа на аналогичный вопрос.
Используйте VBS Script для вызова командного файла:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\path\to\your\batchfile.bat" & Chr(34), 0
Set WshShell = Nothing
Скопируйте строки выше в редактор и сохраните файл с расширением .VBS.
У меня была эта проблема, и у меня сработало следующее:
run myprogram.exe param1