Запуск CMD или BAT в тихом режиме

Как запустить CMD или .bat-файл в тихом режиме? Я хочу, чтобы интерфейс CMD не показывался пользователю.

Включите фразу

@echo off

в самом верху вашего bat-скрипта.

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

Я предложил в вопросе StackOverflow способ запуска пакетного файла в фоновом режиме (не отображаются окна DOS).

Это должно ответить на ваш вопрос.

Вот он:


Из первого скрипта вызовите второй скрипт следующей строкой:

wscript.exe invis.vbs run.bat %*

На самом деле вы вызываете сценарий vbs с помощью:

  • [путь]\имя вашего скрипта
  • все остальные аргументы, необходимые вашему скрипту (%*)

Затем invis.vbs вызовет ваш скрипт с помощью метода Windows Script Host Run(), который принимает:

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

Полный текст сценария invis.vbs см. в вопросе:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False
                                                         ^
                             means "invisible window" ---| 

Обновление после отзывов Tammen':

Если вы находитесь в сеансе DOS и хотите запустить другой скрипт "в фоне", простого /b (как подробно описано в том же вышеупомянутом вопросе) может быть достаточно:

Вы можете использовать start /b second.bat для запуска второго пакетного файла асинхронно с первым, который разделяет окно первого.

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

Используйте расширенный BAT в EXE конвертер из http://www.battoexeconverter.com

Это позволит вам вставлять какие-либо дополнительные файлы с вашего пакетного файла в один стенд полностью бесшумный exe и удалил

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

Я думаю, что это самый простой и кратчайший решения в случае запуска пакетного файла, не открывая окно DOS, он может быть очень отвлекает, когда вы хотите запланировать набор команд, выполняемых периодически, чтобы DOS окна высвечивается, вот ваше решение. Использовать скрипт VBS для вызова пакетного файла ...

Set WshShell = CreateObject("WScript.Shell" ) 
WshShell.Run chr(34) & "C:\Batch Files\ mycommands.bat" & Chr(34), 0 
Set WshShell = Nothing 

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

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

Использования BAT в EXE конвертер для этого<БР>

http://download.cnet.com/Bat-To-Exe-Converter/3000-2069_4-10555897.html<БР> (выбрать <б>прямые ссылки на скачивание</б>)

1 - Открыть бат в EXE конвертер, выберите ваш bat файл.<БР> 2 - в меню выбрать "и невидимого приложения" и нажмите на кнопку компиляции. <БР>

Молодец!

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

Попробуйте SilentCMD. Это небольшая бесплатная программа, которая выполняет пакетный файл без отображения окна командной строки.

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

Если я хочу запустить командной Промт в автоматическом режиме, то есть простая команда ВБС:

Set ws=CreateObject("WScript.Shell")
ws.Run "TASKKILL.exe /F /IM iexplore.exe"

если бы я хотел открыть URL-адрес в cmd молча, то вот код:

Set WshShell = WScript.CreateObject("WScript.Shell") 
Return = WshShell.Run("iexplore.exe http://otaxi.ge/log/index.php", 0)
'wait 10 seconds
WScript.sleep 10000 
Set ws=CreateObject("WScript.Shell")
ws.Run "TASKKILL.exe /F /IM iexplore.exe"
Комментарии (0)

Я'м довольно уверен, что такой способ самый лучший. Скопируйте и вставьте код ниже в .файл VBS. Оттуда вы'МР вызова пакетного файла... поэтому убедитесь, что вы измените последнюю строку, чтобы указать путь и имя пакетного файла (который должен содержать файл, который вы'd, как запустить или выполнить действия, которые вы должны выполняться)

Const HIDDEN_WINDOW = 12 

strComputer = "." 
Set objWMIService = GetObject("winmgmts:" _ 
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set objStartup = objWMIService.Get("Win32_ProcessStartup") 

Set objConfig = objStartup.SpawnInstance_ 
objConfig.ShowWindow = HIDDEN_WINDOW 
Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process") 
errReturn = objProcess.Create("C:\PathOfFile\name.bat", null, objConfig, intProcessID)

Это определенно работало на меня. Комментарии приветствуются :)

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

Я'создан м RunApp, чтобы сделать такую работу, а также использовать ее для своего производства ОКР, надеюсь, что это's не помогает.

Конфигурации, как показано ниже:

файл: конфиг.арг

:style:hidden

MyBatchFile.bat
arg1
arg2

И запустите runapp.exe` вместо этого.

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

Другой способ сделать это, без 3-го участника программы, ни преобразователей ("в пакете с exe" и программы На самом деле просто поместите ваш пакетный файл в папку tmp и запустите его молча, так что любой может просто взять его оттуда получить код) нет файлов VBS (потому что никто не знает ВБС) лишь одну линию в начале пакетного файла.

@echo off > NUL
Комментарии (0)