Скрыть консольное окно.

Скрыть консольное окно в bat/cmd файлах.

Зачастую бывает желательно скрыть консольное окно bat/cmd файла. Для этих целей существуют несколько утилит.

NIRCMD

Если вы хоть раз просматривали внушительный список возможностей утилиты NIRCMD, то скорее всего задались вопросом - а она это может ? Да, может. Я уже упоминал эту утилиту не раз.
(Несмотря на то, что эта утилита все-таки "комбайн" или, говоря рекламным языком - все в одном, текущая ее версия занимает менее 45К ! Только за одно это хочется снять шляпу перед ее авторами. И все эти килобайты - бесплатно).
Итак, для того, что бы сделать консольное окно невидимым следует записать:

nircmd.exe execmd md с:\temp\a1

Вы можете передавать параметры в ваш bat/cmd файл или программу как привыкли.

nircmd.exe execmd md5sum.exe ddd.txt>res.txt
Для выполнения приложения ( кстати, не только bat/cmd файлов ) без отображения консольного окна вместо execmd можно использовать другой параметр этой утилиты:


nircmd.exe exec hide "c:\temp\wul.bat" /savelangfile

Утилита hidec.


( Домашней страницы не нашел, лучше поэтому искать поиском по ключу hidec.exe )

hidec.exe /W %systemdrive%\install\prepare.cmd

Ключ /w запускает приложение с ожиданием окончания его работы.


Существуют еще платные (например, Hidden Start - Hstart) и бесплатные (например, chp.exe -Create Hidden Process, cmdow) утилиты, позволяющие скрыть консольное окно. Здесь я не пытался сделать обзор и сравнительный анализ всех различных вариантов решения этой проблемы. Тем более, что для решения конкретной задачи - скрыть консольное окно для bat/cmd файлов - различия утилит, как мне кажется, не выходят за рамки личных предпочтений.

Кроме того существует возможность сделать это фактически не используя сторонних утилит.

Файл, с кодом, приведенным ниже и с расширением vbs если его выполнить непосредственно или командой CSCRIPT запустит в данном случае блокнот в скрытом окне. Открыв окно Диспетчера задач можно увидеть, что такой процесс действительно запущен.

Set WshShell = WScript.CreateObject("WScript.Shell") Return = WshShell.Run("notepad", 0, true)

Параметры объекта RUN можно посмотреть здесь

Хотел бы еще обратить ваше внимание на то, что по понятным причинам, все антивирусы с огромным подозрением относятся к приложениям со скрытым консольным окном. И к программам, позволяющим их создавать. Возможно, их лучше добавить в списки исключений для антивирусов. Так как ничего нельзя гарантировать, как они отнесутся к этим утилитам при очередном обновлении антивирусной базы.


Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).









  TopList own counter Valid XHTML 1.0 Strict Valid CSS

Фитотерапия Молитвы Водолечение Юмор Форум Кладовка link О авторе

Фитотерапия Молитвы Водолечение Юмор Форум Кладовка Ссылки О авторе Отправить сообщение Карта сайта Поиск по сайту Главная страница

Copyright © 1999 - 2024  Бронислав Краснер