Подтвердить что ты не робот

Запуск CMD или BAT в бесшумном режиме

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

4b9b3361

Ответ 1

Я предложил в вопросе Qaru способ запустить пакетный файл в фоновом режиме (окна 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" ---| 

Обновление после обратной связи Таммена:

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

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

Ответ 2

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

@echo off

прямо вверху вашей летучей мыши script.

Ответ 3

Используйте Advanced BAT to EXE Converter из http://www.battoexeconverter.com

Это позволит вам встраивать любые дополнительные бинарные файлы с вашим пакетным файлом в один автономный полностью тихий EXE и его бесплатное программное обеспечение

Ответ 4

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

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

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

Ответ 5

Используйте Bat To Exe Converter для этого

http://download.cnet.com/Bat-To-Exe-Converter/3000-2069_4-10555897.html
 (Выберите прямую ссылку для скачивания)

1 - Откройте Bat to Exe Converter, выберите файл Bat.
2 - В меню "Опции" выберите "Невидимое приложение", затем нажмите кнопку компиляции.

Готово!

Ответ 6

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

Ответ 7

Если я хочу запустить команду promt в бесшумном режиме, тогда есть простая команда vbs:

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"

Ответ 8

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

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)

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

Ответ 9

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

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

файл: config.arg

:style:hidden

MyBatchFile.bat
arg1
arg2

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

Ответ 10

Другой способ сделать это, без сторонних программ и конвертеров (программы "batch to exe" на самом деле просто помещают ваш пакетный файл в папку tmp, а затем запускают его молча, чтобы любой мог просто извлечь его оттуда и получить ваш код) без vbs файлов (потому что никто не знает VBS) только одна строка в начале пакетного файла.

@echo off > NUL