Как скрыть окно cmd при работе bat файла
Перейти к содержимому

Как скрыть окно cmd при работе bat файла

  • автор:

Спрятать окно консоли

Author24 — интернет-сервис помощи студентам

Еще, вопрос появился, скорей всего банальный.
1. Нужно спрятать окно, консоли, что бы за все время выполнения скрипта, оно не появлялось(вообще).

Лучшие ответы ( 3 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как спрятать консольное окно?
Для полного счастья осталось окно спрятать. cmdow.exe с ключом /HID мне поможет?

Спрятать окно при запуске приложения
Необходимо запустить программу, но, чтобы главная форма находилась в скрытом состоянии. Должен.

Как спрятать папку с картинками при открытии консоли браузера в вкладке sources?
Когда открываю консоль браузера там есть source и там видна папка с картинками, мне её надо спрятать

Спрятать окно чужой программы до его появления
Есть у меня МФУ Canon MG5140. Отличная штука. Позволяет сканировать прямо с самого МФУ. Но при.

Эксперт JS

5197 / 2079 / 406
Регистрация: 06.01.2013
Сообщений: 4,789

Лучший ответ

Сообщение было отмечено ComSpec как решение

Решение

ЦитатаСообщение от Subik Посмотреть сообщение

1. Нужно спрятать окно, консоли, что бы за все время выполнения скрипта, оно не появлялось(вообще).
Создать ещё 1 vbs.

set sh=CreateObject("Wscript.Shell") sh.Run "Имя твоего батника", 0

170 / 45 / 5
Регистрация: 10.01.2013
Сообщений: 424

А у cmd нет, такой своей функции?
Допустим в начале hide(просто пример) указал, и все консоль не вылазит.

Эксперт JS

5197 / 2079 / 406
Регистрация: 06.01.2013
Сообщений: 4,789

Лучший ответ

Сообщение было отмечено ComSpec как решение

Решение

ЦитатаСообщение от Subik Посмотреть сообщение

А у cmd нет, такой своей функции?
Допустим в начале hide(просто пример) указал, и все консоль не вылазит.

Нет. Ещё можно так, консоль на секунду вылезет:

1 2 3 4 5
@echo off (echo.set sh=CreateObject^("Wscript.Shell"^) echo.sh.Run """%~nx0"" 1", 0)>launch.vbs if "%~1"=="" (start "" "launch.vbs"&exit /b) -Код батника

Однако такой батник нельзя будет запустить с параметром.
170 / 45 / 5
Регистрация: 10.01.2013
Сообщений: 424
Ок, спасибо за информацию.
Пойду пробовать.
3457 / 1995 / 635
Регистрация: 26.02.2014
Сообщений: 1,457

Лучший ответ

Сообщение было отмечено ComSpec как решение

Решение

Ну раз на эту тему недавно ссылались в теме «Скрытое выполнение батника», то напишу и свой вариант:

1 2 3 4 5 6
%1@mshta vbscript :Execute("CreateObject(""Wscript.Shell"").Run """"""%~f0"""" :"",0:Close()")& exit/b @echo off rem И далее -- ваш код. rem Например: timeout 5& echo Yes!>"example.txt"

Первая строка при скрытом перезапуске пакетного файла уже будет «автозакомментирована».

Регистрация: 29.10.2013
Сообщений: 178

Всем доброго времени суток.
Есть код.

1 2 3 4 5 6 7 8 9
%1@mshta vbscript:Execute("CreateObject(""Wscript.Shell"").Run """"""%~f0"""" :"",0:Close()")& exit/b @echo off del /f /q "C:\Program Files (x86)\111\disk_d.log" robocopy D:\Users\Secretary\Desktop\ "\\Kanevserver44\Individual\Sekretary\mirror\Desktop" /MIR /Z /R:2 /W:5 /NP /LOG:disk_d.log robocopy D:\Users\Secretary\Documents\ "\\Kanevserver44\Individual\Sekretary\mirror\Documents" /MIR /Z /R:2 /W:5 /NP /LOG+:disk_d.log robocopy D:\Secretary\ "\\Kanevserver44\Individual\Sekretary\mirror\Secretary" /MIR /Z /R:2 /W:5 /NP /LOG+:disk_d.log robocopy D:\Disk_sohraneniya\ "\\Kanevserver44\Individual\Sekretary\mirror\Disk_sohraneniya" /MIR /Z /R:2 /W:5 /NP /LOG+:disk_d.log

До недавнего отлично работал.
BAT файл запускался по пути «C:\Program Files (x86)\111\СОХРАНЕНИЕ.bat» из планировщика заданий, с наивысшими правами в 12:00 каждый день.
После обновления до windows 8.1 файл завершается ошибкой отказано в доступе.
Если удалить строку.
%1@mshta vbscript :Execute(«CreateObject(«»Wscript.Shell»»).Run «»»»»»%~f0″»»» :»»,0:Close()»)& exit/b
То выполнение происходит. НО висит окно командной строки. Подскажите как исправить?

Как скрыть исполнение файла CMD или BAT

Е сли вам уже доводилось иметь дело со скриптами CMD или BAT, то наверняка вы заметили в их работе одну особенность: в процессе исполнения скрипта на экране компьютера появляется чёрное окошко командной строки. В этом нет ничего необычного, просто иногда вид этого чёрного прямоугольника действуют раздражающе.

Вы можете скрыть вывод выполняемых в консоли команд, добавив в начало файла CMD или BAT строчку @echo off, но чтобы сделать невидимым окно самой командной строки, потребуется нечто иное.

@echo off

Решение очень простое. Чтобы скрыть исполнение CMD- или BAT-файла, мы прибегнем к помощи другого скрипта, написанного на языке Visual Basic Script.

Откройте Блокнот, Notepad++ или другой текстовый редактор, скопируйте и вставьте в него следующий код:

Set WshShell = CreateObject("WScript.Shell") WshShell.Run chr(34) & "C:\script.cmd" & Chr(34), 0 Set WshShell = Nothing

В данном примере путь к файлу командной строки выглядит как C:\script.cmd, у вас же он может быть другим. Сохраните файл, дав ему произвольное имя и обязательное расширение VBS. Обратите внимание — кавычки в коде должны быть прямыми, иначе при запуске скрипта получите ошибку.

VBS

Когда вам нужно будет выполнить файл командной строки, запустите VBS-скрипт, а он в свою очередь запустит ваш «батник», который выполнится в скрытом режиме. Столь раздражающего вас чёрного окна командной строки вы больше не увидите.

Наверное, кто-то из наших читателей спросит: а для чего все эти сложности? Неужели то, что делает файл CMD, не может сделать VBS? Может, просто язык Visual Basic Script знают весьма немногие, а с командной строкой более или менее хорошо знакомы все, кто считает себя продвинутым пользователем.

Как спрятать окно cmd при исполнении batch?

Как спрятать окно cmd при исполнении batch?

В статье описываются различные способы того, как спрятать окно cmd во время исполнения batch файла.

Батники, они же batch файлы, бывают очень полезны для запуска целого пакета команд. Но, думаю, многие задаются вопросом, как сделать так, чтобы окно консоли при этом не появлялось на мониторе. Основной упор я сделаю на встроенные возможности системы, упомяну вскользь программы сторонних разработчиков. Попутно мы решим некоторые другие задачи, например, добавив отдельный для батника ярлык.

Как миновать защиту UAC? Обратитесь к статье Как обойти UAC в Windows

Как спрятать окно cmd. Можно ли это сделать средствами самого батника?

Нет. Работа кода производится в среде консоли, а значит окно будет отображаться. С этим нужно смириться: окно будет открытым до тех пор, пока исполняется код. Всё, что вы можете сделать, это предпринять некоторые шаги, дабы окно появлялось на минимальный отрезок времени. В принципе это полезно: работу кода мы можем наблюдать воочию. Но если хочется скрыть окно консоли, для этого придётся использовать сторонние средства: других разработчиков или возможности самой Windows. С неё и начнём.

Запустить batch файл незаметно. Только Windows.

В самом файле “безумству кода” вы пойте песню сами. Я же предложу оптимизировать его содержание для максимально тихой работы. Здесь есть важный момент: чем короче сам код, тем больше вероятность того, что окно консоли появится на короткое время. Если объём большой или прописывается сразу несколько команд, окно может привлечь внимание. Для примера возьму код скрипта, который в Windows 7 позволяет немного изменить системную информацию о компьютере (конкретно, характеристики процессора в Свойствах системы ). Делается это на время сеанса Windows: после перезагрузки всё станет на свои места.

Вобщем, имеем следующий код батника:

REGEDIT4 ; @ECHO OFF ; CLS ; REGEDIT.EXE /S "%~f0" ; EXIT [HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor
REGEDIT4 ; @ECHO OFF ; CLS ; REGEDIT.EXE /S "%~f0" ; EXIT [HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0] "ProcessorNameString"="Intel(R) Core(TM) i112-3470 CPU @ 800.5GHz "

] "ProcessorNameString"="Intel(R) Core(TM) i112-3470 CPU @ 800.5GHz "

Обратите внимание на характеристики процессора . Он и будет отвечать за изменение системной информации. Присваиваем файлу имя spec . bat . Также обратите внимание, я буду использовать только латинские символы в именах файлов и избегать в путях к их месторасположению кириллицы, дабы дорожка к скрипту читались системой правильно. Потому и положу созданный бат-файл в системную директорию – прямо в диск С: .

батник в корне диска С

Однако его запуск сопровождается:

  • появлением окна консоли cmd
  • появлением окна UAC с подтверждением с проделываемыми изменениями (задача, как видите, усложнилась сама по себе, ибо меняется системная информация)

окно консоли и UAC

перед исполнением батника появляется окно UAC

От первого окошка я предлагаю вам избавиться с помощью следующего скрипта, оформленного уже в очередной, vbs-файл . А вот и к нему скрипт (смотрите – мой путь к файлу C:\spec.bat ):

'HideBat.vbs CreateObject("Wscript.Shell").Run "C:\spec.bat", 0, True

Назову любым именем с расширением .vbs . Теперь работа батника по нажатии на vbs -ник сопровождается лишь появлением окна Контроля учётных записей : дело в том, что изменения, проделываемые батником касаются реестра, а система логично не пропускает это бесконтрольно. Как запускать программу без UAC – это тема отдельной статьи:

скрыть cmd через vbs

Однако мы немного отвлечёмся от темы статьи и закончим начатое, создав для файла сокрытия консоли (vbs-файла) специальный ярлык. В поле Расположения объекта укажем путь в формате:

Wscript путь-к-vbs-нику путь-к-bat-нику

Смотрите:

ярлык для vbs-файла

Ярлык готов (можете сменить его рисунок через Свойства ярлыка). Его можно закинуть на выбор в папку Автозагрузки, поместить в Планировщик Windows или запускать двойным щелчком мыши. Окна консоли не будет.

Как спрятать окно cmd? Специальные программы.

Их немало, они легковесны и просты в использовании. Минус – их нужно скачивать, и некоторые устанавливать. Приведу самые популярные из них:

Утилита отечественного производителя. Нужно покупать, стоимости не знаю. Однако с её помощью можно скрыть окно раз и навсегда, и не важно, требуется ли подтверждение UAC или нет – его тоже можно скрыть:

окно программы hidden start

Для 32-х и 64-х битных версий. Установки не требует, поставляется в виде исполнительного файла, который при запуске (от имени админа) сразу просится в корневой каталог Windows. Согласимся, и она теперь с нами:

nircmd

Утилита много чего умеет, в том числе менять уровень звука, открывать лотки привода и т.д. Для нашего случая, чтобы спрятать окно cmd , можно было бы просто ввести команду в виде:

nircmd elevatecmd exec hide путь-к-файлу

От окна UAC не избавились (elevatecmd exec и есть часть команды с запросом на UAC), но нам и не обещалось. И постоянно прописывать в консоли полный путь к файлу неудобно, потому сразу создадим ярлык:

nircmd cmdshortcut "~$folder.desktop$" "Батник" elevatecmd exec hide путь-к-файлу

как спрятать окно cmd при помощи nircmd

Как спрятать окно cmd: batch превратился в exe.

Тоже вариант. Это уже музыка высших сфер. Кому эта утилита неизвестна, знакомьтесь – пригодится: Bat To Exe Converter . Как вы поняли по названию, превращает батник в исполнительный файл с расширением .exe. Качаем, устанавливаем, пользуемся:

как превратить bat в exe

Успехов.

Как скрыть окно cmd при работе bat файла


Bat To Exe Converter - Freeware - 390 КБ
Преобразует .bat файлы в .exe
Гибкие настройки программы.

Здравствуйте. Есть bat-файл, в котором есть цикл, и он постоянно крутится в памяти. Можно ли сделать так, чтоб при этом не отображалось окно CMD, в котором, собствено и отображается все действо. Т.е. можно ли это окно CMD убрать с экрана, чтоб оно не мешало? Заранее спасибо.

-------
Реальный мир - это илюзия, вызванная отсутстствием алкоголя.

Это сообщение посчитали полезным следующие участники:

Сообщения: 2423
Благодарности: 85

Конфигурация компьютера
CD/DVD: всякие-разные
Microsoft Windows XP [Версия 5.1.2600] (С) Корпорация Майкрософт, 1985-2001. C:\Documents and Settings\hasher>cd\ C:\>start /? Запуск указанной программы или команды в отдельном окне. START ["заголовок"] [/Dпуть] [/i] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME| /ABOVENORMAL | /BELOWNORMAL] [/WAIT] [/b] [команда/программа] [параметры] "заголовок" Заголовок окна. путь Рабочий каталог. B Запуск приложения без создания нового окна с отключением обработки сочетания клавиш ^C. Если приложение не обрабатывает сочетание клавиш ^C самостоятельно, единственным способом его прерывания является использование сочетания клавиш ^Break. I Новой средой станет исходная среда, переданная cmd.exe, а не текущая среда. MIN Запуск команды/программы в свернутом окне. MAX Запуск команды/программы в развернутом окне. SEPARATE Запуск 16-разрядной программы Windows в отдельной области памяти. SHARED Запуск 16-разрядной программы Windows в общей области памяти. LOW Запуск приложения с приоритетом IDLE. NORMAL Запуск приложения с приоритетом NORMAL. HIGH Запуск приложения с приоритетом HIGH. REALTIME Запуск приложения с приоритетом REALTIME. WAIT Запуск приложения с ожиданием его завершения. ABOVENORMAL Запуск приложения с классом приоритета ABOVENORMAL BELOWNORMAL Запуск приложения с классом приоритета BELOWNORMAL команда/программа Если это внутренняя команда cmd.exe или пакетный файл, обработчик команд (cmd.exe) запускается с ключом /K. Это означает, что окно не будет закрыто после завершения команды. Если это не внутренняя команда cmd.exe и не пакетный файл, значит, это программа, которая будет запущена в графическом или текстовом окне. параметры Параметры, передаваемые команде/программе. Изменения вызова внешних команд из командной строки или с помощью команды START при включении расширенной обработки команд: Для вызова неисполняемых файлов через механизм сопоставления типов файлов достаточно просто ввести имя файла в командной строке. Например, команда WORD.DOC запускает приложение, сопоставленное расширению имени файла .DOC. Сведения о создании подобных сопоставлений из пакетных файлов приведены в описаниях команд ASSOC и FTYPE. При запуске 32-разрядного приложения с графическим интерфейсом пользователя обработчик команд CMD.EXE не ожидает завершения работы приложения перед возвратом к приглашению командной строки. Подобное новое поведение НЕ относится к запуску приложений из пакетных файлов. При выполнении командной строки, первым элементом которой является текстовая строка "CMD" без расширения имени файла или указания пути, она заменяется значением переменной COMSPEC. Это предотвращает запуск CMD.EXE из текущей активной папки, если таковая программа там имеется. Если первый элемент командной строки не содержит расширения имени файла, обработчик команд CMD.EXE использует значение переменной среды PATHEXT, чтобы определить расширения имен исполняемых файлов и порядок поиска нужного файла. По умолчанию для переменной PATHEXT задается значение: .COM;.EXE;.BAT;.CMD Обратите внимание, что этот синтаксис подобен синтаксису для переменной PATH, то есть отдельные элементы разделяются точкой с запятой. Если при поиске исполняемого файла нет соответствия ни одному из расширений, выполняется проверка соответствия указанного имени папки. Если имя папки соответствует указанному, то команда START запускает EXPLORER для этого пути. Если такое действие выполняется из командной строки, то оно эквивалентно выполнению команды CD /D для указанного пути. C:\>

ох и наспамил.
Это сообщение посчитали полезным следующие участники:

Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Сообщения: 3904
Благодарности: 163

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *