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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - запуск в свернутом виде (start /min, cmd /K, exit)

Ответить
Настройки темы
CMD/BAT - запуск в свернутом виде (start /min, cmd /K, exit)

Аватара для CyberMuesli

Старожил


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

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


Изменения
Автор: CyberMuesli
Дата: 12-06-2012
В Win9x команда start была отдельным исполняемым модулем start.exe
В WinXP/server START стала командой CMD.EXE со следующими нюансами:
  • даже если указан ключ /MIN все равно кратковременно мигает черное окошко, в котором запускается сам CMD.EXE, выполняющий команду START.
  • если с помощью START запускается BAT-файл, то он запускается с использованием CMD /K, при этом окно CMD после завершения BAT-файла не закрывается
  • последнее обстоятельство приводит к весьма существенным затруднениям.

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

Допустим, есть BAT, который прекрасно работает. Мы его решили запускать через start /min из планировщика. Всего-то изменение способа запуска повлечет неприятную необходимость менять код: все goto :eof придется заменить на EXIT + поставить EXIT в конце (иначе окно не закроется и со временем накопится столько незакрытых черных окон, что сервер упадет). При этом BAT станет непригоден для использования, если он вызывается из другого BAT (т.к. завершится весь процесс CMD). Получается, если ставить цель написать сценарий, корректно работающий в различных вариантах запуска, необходимо следовать правилу, согласно которому, каждому сценарию должна в параметрах передаваться информацию о способе его запуска, а этот сценарий, в свою очередь, должен снабжать этой же информацией другие сценарии в цепочке, передавая ее параметрах вызова.

Все это крайне неприятно, если не иметь отдельный исполняемый EXE модуль (как в Win9x), выполняющий запуск процесса/сценария в свернутом виде.

Я решил проблему такой программкой на дельфи. Это снимает все негативные моменты + дает дополнительный бонус в виде отсутствия мелькания черных окон и/или сбивания фокуса при запуске из планировщика. Первый параметр - имя процесса (можно указывать EXE и также непосредственно BAT, без полного пути и расширения), остальные - параметры запускаемого процесса. Например:
startmin cmd /c dir c:\*.*
startmin "c:\Admin scripts\daily backup.bat" "\\server\common files\*.*"

Код: Выделить весь код
program startmin;

uses
  SysUtils, Windows,ShellAPI;
var Param,ProgCmdLine:AnsiString; i:integer;

begin
   ProgCmdLine := '';
   for i:= 2 to ParamCount do begin
       if i >= 3 then
          ProgCmdLine := ProgCmdLine +' ';
       Param := ParamStr(i);
       if Pos(' ',Param) <> 0 then
          Param := '"'+Param+'"';
       ProgCmdLine := ProgCmdLine + Param;
   end;
   ShellExecute(0,nil,PChar(ParamStr(1)),PChar(ProgCmdLine),nil,SW_SHOWMINNOACTIVE);
end.
Было бы интересно послушать мнения по данному вопросу.

-------
Кибер Мюсли

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

Отправлено: 01:43, 12-06-2012

 

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


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

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


Вложения
Тип файла: zip startmin.zip
(2.9 Kb, 214 просмотров)

Цитата parkone:
тогда уж и скомпилированный файл выкладывайте
выкладываю
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:24, 24-06-2013 | #31



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

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


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


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

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


Спасибо за софтинку.
Забрал сишную версию.
Она мне ближе по духу )

Отправлено: 01:10, 29-12-2013 | #32


Ветеран


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

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


спасибо. поскольку дельфи не выключается сразу и попробовал.
в ответ дарю winmin.exe [имя_окна]
если запустить без параметров, значит минимизирует сам себя)

-------
консольный клиент telegram для Windows: www.elapser.info


Отправлено: 11:07, 30-12-2013 | #33


Ветеран


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

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


Вложения
Тип файла: rar winmin.rar
(20.7 Kb, 108 просмотров)

сорри, забыл прикрепить)

-------
консольный клиент telegram для Windows: www.elapser.info

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

Отправлено: 11:09, 30-12-2013 | #34


Аватара для CyberMuesli

Старожил


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

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


Цитата Опиум:
в ответ дарю winmin.exe [имя_окна] »
Я бы на Вашем месте подарил бы winmin.pas

-------
Кибер Мюсли


Отправлено: 12:02, 30-12-2013 | #35


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


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

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


Alexander S, Спасибо! Помогло!)

Отправлено: 10:38, 16-02-2018 | #36


Старожил


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

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


Вложения
Тип файла: zip SetConsole.zip
(78.1 Kb, 11 просмотров)

еще можно попробовать
SetConsole.exe /minimize или /hide

Последний раз редактировалось shadowbat, 22-03-2019 в 10:23.


Отправлено: 10:16, 22-03-2019 | #37


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


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

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


Подскажите Путь, куда нужно расположить startmin.exe и как правильно сделать запись в автозапуске, чтобы работала программа (запуск BAT в свернутом виде)?

P.S. Запись:
startmin "C:\Users\111\Автозапуск виртуальной ОС.bat"
выдает ошибку - не удаётся найти startmin.exe (startmin.exe располагал рядом с Bat и в автозагрузку)

Последний раз редактировалось Risovod, 02-04-2019 в 18:28.


Отправлено: 18:21, 02-04-2019 | #38


Ветеран


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

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


Цитата Risovod:
выдает ошибку - не удаётся найти startmin.exe »
Кто выдаёт ошибку?

Отправлено: 18:41, 02-04-2019 | #39


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


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

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


Iska, ошибки при запуске bat-файла через AnVir Task Manager (запустить сейчас) после добавления его в автозагрузку.
Скрытый текст

Вопрос был в другом: как правильно организовать с помощью, обсуждаемого здесь, startmin.exe запуск bat-файла (запуск виртуальной ОС через VirtualBox) в свернутом виде.

Отправлено: 16:30, 03-04-2019 | #40



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - запуск в свернутом виде (start /min, cmd /K, exit)

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
есть ли утилитка для win7, которая автоматич запускает в свернутом виде программы? HarrysFerrarievich Хочу все знать 5 15-12-2011 12:16
fsck died with exit code 4 hnsk Общий по Linux 2 20-09-2010 23:08
[решено] Как после команды Run выполнить Exit Centrinar AutoIt 5 01-02-2010 21:30
kde cannot start :((( DominuS Общий по Linux 7 04-05-2005 07:00
CD Start-It BORIS YK Хочу все знать 3 15-12-2003 00:10




 
Переход