Как запустить программу из пакетного файла, не оставляя консоль открытой после запуска программы?

На данный момент мой пакетный файл выглядит следующим образом:

myprogram.exe param1

Программа запускается, но окно DOS остается открытым. Как я могу закрыть его?

Комментарии к вопросу (1)

Использовать команду start, чтобы предотвратить пакетный файл от ждем программы. Просто не забудьте взять с собой пустые двойные кавычки в передней части программа, которую нужно запустить после"на старт &quot и;. Например, если вы хотите запустить Visual Studio 2012 из пакета команду:

Start ""  "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"

обратите внимание на двойные кавычки после старта.

Комментарии (5)
Решение

Вы можете использовать ключевое слово exit. Вот пример из одного из моих пакетных файлов:

start myProgram.exe param1
exit
Комментарии (4)

Посмотрите на команду START, вы можете сделать это:

START rest-of-your-program-name

Например, этот пакетный файл будет ждать, пока Notepad не выйдет из программы:

@echo off
notepad c:\test.txt

Однако это не так:

@echo off
start notepad c:\test.txt
Комментарии (0)

От моего Вопрос:

start /b myProgram.exe params...

работает, если вы запустите программу из существующей DOS сессии.

Если нет, то вызвать скрипт VB

wscript.exe invis.vbs myProgram.exe %*

В сервера сценариев Windows метод run () принимает:

  • intWindowStyle : 0 означает "невидимые окна"и
  • bWaitOnReturn : false означает, что ваш первый сценарий не нужно ждать ваш второй скрипт, чтобы закончить

Вот Инвис.ВБС:

set args = WScript.Arguments
num = args.Count

if num = 0 then
    WScript.Echo "Usage: [CScript | WScript] invis.vbs aScript.bat "
    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
Комментарии (2)

Это единственное, что работал для меня, когда я попытался запустить Java-класс из пакетного файла:

СТАРТ "и cmdWindowTitle и" и quot и;javaw, который" с-СР . testprojectpak.Форму mainform

Вы можете настроить команду Пуск, как вы хотите для вашего проекта, соблюдая правильный синтаксис:

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)
Комментарии (0)

Попробуйте следующее. Программа запускается без окна. Оно действительно вспыхивает на секунду, но быстро исчезает.

start "name" /B myprogram.exe param1
Комментарии (2)

Как решить, что "проблем" и местными зависимостями:

@echo off
cd "C:\Program Files\HeidiSQL"
start heidisql.exe

cd "C:\Program Files (x86)\Google\Chrome\Application"
start chrome.exe

exit
Комментарии (4)

Мое решение для этого в GUI:

  1. Создайте ярлык для программы, которую вы хотите выполнить;

  2. Отредактируйте ярлыка's свойства;

  3. Изменить поле целевая " на " %COMSPEC% /C и на "Пуск " и" не то "программа" и"в;

  4. Изменить поле "выполнить", чтобы свести к минимуму.

Готово! Посмотрим, как тебе понравится это...

ЗЫ: программа параметров может быть вставлен между двумя окончательной кавычки; в ИМЯ_ПРОГРАММЫ строка может быть либо именем, относительный или абсолютный путь-если вы поставили в абсолютный путь и стереть букву диска или точку с запятой, то это будет работать на флэшке не важно, что письмо главного компьютера присваивает ему... (также, если вы поместите ярлык в той же папке и перед именем программы в ИМЯ_ПРОГРАММЫ с %КД% переменная, пути всегда будет соответствовать, тот же самый трюк может быть использован в `Пуск в поле).

Комментарии (0)

Если этот пакетный файл-это то, что вы хотите работать по расписанию, или всегда можно использовать программу расписание для Windows и он не't открывает в окне при запуске пакетного файла.

Открыть Планировщик заданий:

  • Старт-и GT; работа/поиск -> 'УМК'
  • Введите taskschd.МСЦ` -> введите

С правой стороны, нажмите кнопку `Создать простую задачу и следовать меню.

Надеюсь, что это помогает.

Комментарии (0)

Вот мой предпочтительным решением. Это взято из ответ на подобный вопрос.

Использовать скрипт VBS для вызова пакетного файла:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\path\to\your\batchfile.bat" & Chr(34), 0
Set WshShell = Nothing

Скопировать вышеуказанные строки в редакторе и сохраните файл .Расширением VBS.

Комментарии (0)

Я был с этой проблемой и следующие работал для меня:

run myprogram.exe param1
Комментарии (1)