Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Программное обеспечение Windows » Система - Как скрыть окно в котором выполняется пакетный файл (*.bat или *.cmd)?

Ответить
Настройки темы
Система - Как скрыть окно в котором выполняется пакетный файл (*.bat или *.cmd)?

Новый участник


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

Профиль | Отправить PM | Цитировать


Изменения
Автор: Drongo
Дата: 12-05-2009
Описание: Добавил программу в шапку

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


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

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

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

Отправлено: 16:55, 22-12-2004

 

Аватара для hasherfrog

Старый параноик


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

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
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:\>

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

Отправлено: 00:17, 31-12-2004 | #11



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

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

mar mar вне форума

Аватара для mar

just mar


Moderator


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

Профиль | Отправить PM | Цитировать


а то, что у меня - от 98SE

Отправлено: 00:39, 31-12-2004 | #12


Аватара для hasherfrog

Старый параноик


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

Профиль | Отправить PM | Цитировать


неожиданное применение

Отправлено: 00:48, 31-12-2004 | #13


(*.*)


Administrator


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

Профиль | Сайт | Отправить PM | Цитировать


hasherfrog
Xoрошая находка, только я что-то не пойму где там скрытие окна... Я запускаю несколько файлов батником типа
Код: Выделить весь код
@echo off
start /b F:\data\file1.doc
start /b F:\data\file2.doc
start /b excel

EXIT
Но окно-то все равно висит пока команды исполняются. Файлики-то на сетевом диске, открываются не сразу. А вот если я первой строкой добавлю cmdow @ /HID имея утилиту cmdow.exe в %windir%\system32, то окно появляется лишь на миг, и сразу исчезает, в то время как команды все еще выполняются.

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 05:53, 31-12-2004 | #14


Ветеран


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

Профиль | Отправить PM | Цитировать


Shaytan
Цитата:
Здравствуйте. Есть bat-файл, в котором есть цикл, и он постоянно крутится в памяти. Можно ли сделать так, чтоб при этом не отображалось окно CMD, в котором, собствено и отображается все действо. Т.е. можно ли это окно CMD убрать с экрана, чтоб оно не мешало? Заранее спасибо.
Создаем элементарную консольную программу на С:
Определяем hwnd данного консольного окна: hwnd=GetForegroundWindow();
Запускаем батник в данном окне, например: system("mybatfile.bat");
вызываем функцию ShowWindow(hwnd, SW_HIDE); Окна нет на экране. Кстати то же самое можно проделать для любого окна в системе.

Полный текст:
Код: Выделить весь код
#include <windows.h>

void main(){

HWND hwnd;
hwnd=GetForegroundWindow();
ShowWindow(hwnd, SW_HIDE); 
system("mybatfile.bat");
ExitProcess(0);
}

Последний раз редактировалось mrcnn, 31-12-2004 в 06:18.


Отправлено: 06:10, 31-12-2004 | #15


Аватара для hasherfrog

Старый параноик


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

Профиль | Отправить PM | Цитировать


Vadikan
Цитата:
Xoрошая находка, только я что-то не пойму где там скрытие окна...
Очевидно, небольшая путаница из пары тем? ;-)
В данном случае (для этой темы) - решение в запуске самого батника с помощью start /b, а не использование start /b в батнике.

Цитата:
то окно появляется лишь на миг, и сразу исчезает
Ууу, это вообще не вариант. Не хватало, чтобы "моргало" чего-то перед носом. Хотя, на вкус и цвет...

Отправлено: 12:04, 31-12-2004 | #16


(*.*)


Administrator


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

Профиль | Сайт | Отправить PM | Цитировать


hasherfrog
Цитата:
Очевидно, небольшая путаница из пары тем? ;-)
Наверное...
Цитата:
В данном случае (для этой темы) - решение в запуске самого батника с помощью start /b,
Хм, я все равно не понимаю. Я, вообще, уже с трудом понимаю мануалы и справки на русском языке, так что я перечитал ключи start на английском ;-) И вижу я, что просто новое окно cmd открываться не будет. Ну и что? Откуда ты батник запускаешь? Из командной строки? Ну так исходное окно все-равно остается и точно также висит и вообще не закрывается после отработки батника. Так в чем соль?

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 23:03, 31-12-2004 | #17


Аватара для hasherfrog

Старый параноик


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

Профиль | Отправить PM | Цитировать


Vadikan
Создайте ярлык на открытие a.txt (сам файл должен сущесвовать - это для примера).
В свойствах укажите
%comspec% /c a.txt
А теперь поменяйте на
%comspec% /c start /b a.txt
В первом случае окно висит, во втором - нет.

Хотя я уже сам стал запутываться, что, зачем и почему 8-P
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:21, 01-01-2005 | #18


(*.*)


Administrator


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

Профиль | Сайт | Отправить PM | Цитировать


hasherfrog
Цитата:
В первом случае окно висит, во втором - нет.
Оно не висит, но отображается же на какой-то момент при запуске ;-) В общем, условие задачи сформулировано так
Цитата:
Есть bat-файл, в котором есть цикл, и он постоянно крутится в памяти. Можно ли сделать так, чтоб при этом не отображалось окно CMD, в котором, собствено и отображается все действо.
Можно решить твоим способом
Код: Выделить весь код
%comspec% /c start /b filename.bat
можно моим
Код: Выделить весь код
cmdow @ /HID
@echo off
start filename.bat
EXIT
ну а метод mrcnn я не проверял.

-------
Канал Windows 11, etc | Чат @winsiders

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

Отправлено: 20:59, 01-01-2005 | #19


Аватара для hasherfrog

Старый параноик


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

Профиль | Отправить PM | Цитировать


Ну и первым моим
Код: Выделить весь код
hideconsole.exe filename.bat
До кучи, так сказать. ;-) Единственный метод, который "не моргает".
Вывод: тему занести в ФАК, для будущих поколений.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:58, 01-01-2005 | #20



Компьютерный форум OSzone.net » Сфера Microsoft » Программное обеспечение Windows » Система - Как скрыть окно в котором выполняется пакетный файл (*.bat или *.cmd)?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Batch файл (.bat, .cmd) - как сгенерировать произвольное число от 1 до 10? ANR Скриптовые языки администрирования Windows 9 26-03-2013 10:02
Разное - [решено] перезагрузка из .bat или .cmd San_dr Программирование и базы данных 7 03-08-2011 01:58
CMD/BAT - [решено] сохранить окно CMD после выполнения bat файла WChek Скриптовые языки администрирования Windows 6 17-03-2008 11:03
Автоматический запуск cmd или bat файла из autorun.inf Altmer Автоматическая установка Windows 2000/XP/2003 2 24-02-2008 14:52
BAT-файлы в WindowsXP (окно CMD) Alick Microsoft Windows 2000/XP 4 14-12-2005 00:03




 
Переход