Как я могу запустить CMD или .bat файл в бесшумном режиме? Я хочу, чтобы интерфейс CMD не показывался пользователю.
Запуск CMD или BAT в бесшумном режиме
Ответ 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