Відповіді:
Можна використовувати ключове слово вихід. Ось приклад одного з моїх пакетних файлів:
start myProgram.exe param1
exit
exit
в пакетний файл.
start "VPN" "C:\Program Files (x86)\Cisco\Cisco AnyConnect Secure Mobility Client\vpnui.exe"
Використовуйте команду start, щоб не допустити, щоб пакетний файл чекав програми. Просто не забудьте поставити порожню подвійну цитату перед програмою, яку потрібно запустити після "Пуску". Наприклад, якщо ви хочете запустити Visual Studio 2012 з пакетної команди:
Start "" "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"
помічайте подвійну цитату після початку.
start <window name> <program name>
Подивіться на команду START, ви можете це зробити:
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 () займає:
Ось 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
"title"
Варіант має важливе значення. Якщо шлях програми включає пробіли, він повинен бути укладений лапками, тому ми повинні додати, "title"
щоб уникнути збою.
Як вирішити "космічну проблему" та локальні залежності:
@echo off
cd "C:\Program Files\HeidiSQL"
start heidisql.exe
cd "C:\Program Files (x86)\Google\Chrome\Application"
start chrome.exe
exit
Відповіді на це питання вже є, але я публікую це, щоб уточнити щось важливе, хоча це не завжди може бути так:
Start "C:\Program Files\someprog.exe"
Може Start
виникнути проблеми в деяких версіях Windows, оскільки насправді очікує, що перший набір лапок буде назвою Windows. Тому найкраще спочатку подвоїти коментар або пустий коментар:
Start "" "C:\Program Files\someprog.exe"
або
Start "Window Title" "C:\Program Files\someprog.exe"
Моє рішення зробити це з GUI:
Створіть ярлик до програми, яку потрібно запустити;
Відредагуйте властивості ярлика;
Змінити TARGET
поле на %COMSPEC% /C "START "" "PROGRAMNAME""
;
Змініть RUN
поле до мінімізації.
Готово! Подивіться, як вам це подобається ...
PS: Параметри програми можна вставити між двома кінцевими лапками; PROGRAMNAME
рядок може бути або ім'я файлу, відносний або абсолютний шлях - якщо поставити абсолютний шлях і стерти букву і точку з коми, то це буде працювати в флешці , незалежно від того , що лист хост - комп'ютер присвоює йому .. . (також, якщо ви помістите ярлик у ту саму папку і передуєте назві файла програми PROGRAMNAME
зі %CD%
змінною, шляхи завжди будуть відповідати; в START IN
полі може бути використаний такий самий трюк ).
Якщо цей пакетний файл - це те, що ви хочете запустити як заплановано або завжди; ви можете використовувати інструмент розкладу Windows, і він не відкриється у вікні, коли він запускає пакетний файл.
Щоб відкрити Task Scheduler
:
'cmd'
taskschd.msc
-> enterПраворуч натисніть Create Basic Task
і слідуйте за меню.
Сподіваюся, це допомагає.
Ось моє переважне рішення. Це взято з відповіді на подібне запитання.
Використовуйте сценарій VBS для виклику пакетного файлу:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\path\to\your\batchfile.bat" & Chr(34), 0
Set WshShell = Nothing
Скопіюйте рядки вище в редактор і збережіть файл із розширенням .VBS.