|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - запуск в свернутом виде (start /min, cmd /K, exit) |
|
CMD/BAT - запуск в свернутом виде (start /min, cmd /K, exit)
|
Старожил Сообщения: 207 |
Профиль | Отправить PM | Цитировать
В Win9x команда start была отдельным исполняемым модулем start.exe
В WinXP/server START стала командой CMD.EXE со следующими нюансами:
Если ваши сценарии простые, проблема покажется несущественной и надуманной. В таком случае пост не для вас. Почувствовать проблему можно только, если ваши сценарии достаточно сложны и взаимосвязаны, могут запускаться непосредственно, из других сценариев, а также могут запускаться из планировщика (также непосредственно или косвенно). Допустим, есть 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
|
Профиль | Отправить PM | Цитировать Цитата parkone:
|
|
Отправлено: 16:24, 24-06-2013 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Спасибо за софтинку.
Забрал сишную версию. Она мне ближе по духу ) |
Отправлено: 01:10, 29-12-2013 | #32 |
Ветеран Сообщения: 542
|
Профиль | Сайт | Отправить PM | Цитировать спасибо. поскольку дельфи не выключается сразу и попробовал.
в ответ дарю winmin.exe [имя_окна] если запустить без параметров, значит минимизирует сам себя) |
------- Отправлено: 11:07, 30-12-2013 | #33 |
Ветеран Сообщения: 542
|
Профиль | Сайт | Отправить PM | Цитировать сорри, забыл прикрепить)
|
------- Отправлено: 11:09, 30-12-2013 | #34 |
Старожил Сообщения: 207
|
Профиль | Отправить PM | Цитировать Цитата Опиум:
|
|
------- Отправлено: 12:02, 30-12-2013 | #35 |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать Alexander S, Спасибо! Помогло!)
|
Отправлено: 10:38, 16-02-2018 | #36 |
Старожил Сообщения: 267
|
Профиль | Отправить PM | Цитировать еще можно попробовать
SetConsole.exe /minimize или /hide |
Последний раз редактировалось shadowbat, 22-03-2019 в 10:23. Отправлено: 10:16, 22-03-2019 | #37 |
Новый участник Сообщения: 35
|
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать Цитата Risovod:
|
|
Отправлено: 18:41, 02-04-2019 | #39 |
Новый участник Сообщения: 35
|
Профиль | Отправить PM | Цитировать Iska, ошибки при запуске bat-файла через AnVir Task Manager (запустить сейчас) после добавления его в автозагрузку.
Скрытый текст
Вопрос был в другом: как правильно организовать с помощью, обсуждаемого здесь, startmin.exe запуск bat-файла (запуск виртуальной ОС через VirtualBox) в свернутом виде. |
Отправлено: 16:30, 03-04-2019 | #40 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
есть ли утилитка для 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 |
|