![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - вывести сообщение и закрыть его |
|
CMD/BAT - вывести сообщение и закрыть его
|
Новый участник Сообщения: 3 |
Добрый день.
Необходимо создать bat файл для обновления программы programka путем простого копирования с заменой. Как бы вроде достаточно: @echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js echo WSHShell.Popup("Внимание!Обновляется Programka, просьба убрать руки от клавиатуры и дождаться окончания копирования"); >> %temp%\mes.js start %temp%\mes.js deltree /y %temp%\mes.js @xcopy \\server\programka\*.* "c:\Program Files\programka\" /s /e /y НО, хочется чтобы Bat файл работал следующим образом: 1. Юзеру выводится сообщение о начале обновления "Внимание!Обновляется Programka....", причем БЕЗ кнопки "OK" 2. Происходит непосредственно само копирование (ну тут обычного xcopy хватит) 3. По окончании копирования,автоматически закрывается окно "Внимание!Обновляется Programka...." и выводится новое "Обновление закончено... нажмите "OK" и приступайте к работе... " Кто может помочь, просьба привести скрипт целиком. Потому как в скриптах не особо шарю ))) |
|
Отправлено: 12:06, 22-03-2012 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать В чём смысл попытки одновременного использования параметров «/s» и «/e»?
Copter, Вам, пожалуй, подойдёт код на AutoIt: Проверять, запущено ли в этот момент само приложение «Programka», и завершать его, при необходимости — Вы не планировали? |
Отправлено: 02:02, 23-03-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Проверять, запущено ли в этот момент само приложение не требуется, т.к. обновление начинается при входе в систему, но юзер может запустить программу в процессе обновления, и как результат часть файлов заблокируются. Поэтому описанные 3 пункта являются наиболее оптимальным решением для защиты от действий нетерпеливого пользователя.
В любом случае спасибо за предложение, но задача стоит именно так. Отдельное спасибо за код, но опять же интересует именно bat файл(команды CMD+ява там, где иначе никак), потому как параметры обновления будут постоянно меняться (замена файлов по дате, дописать новые или заменить только отдельные каталоги и т.д.). Батник используется как сценарий входа в винду пользователей домена. Нужно иметь возможность быстро поправить в зависимости от ситуации код не имея особых навыков программирования(печально но факт). Команды CMD достаточно просты в использовании, а куски явы (для вывода сообщений и их закрытия) можно использовать без особого понимания происходящих процессов, правя лишь выводимый текст. Посему, основная задача сводится к 2м кускам ява кода, один из которых выведет окошко с нужным сообщением, а другой его просто закроет. |
Последний раз редактировалось Copter, 23-03-2012 в 10:42. Отправлено: 09:31, 23-03-2012 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать 1. Речь идёт явно не о Java, а о JavaScript как одного из движков, входящих в состав WSH, а это принципиально разные технологии.
2. JavaScript никак не поможет Вам сделать это: Цитата Copter:
3. Без блокирования ввода ничто не помещает пользователю запустить в момент обновления обновляемое приложение, что может привести к невозможности замены заблокированных файлов. И описанные Вами выше три пункта никак не могут помешать ему сделать это. Цитата Copter:
Кстати, а почему обновление Вы делаете в сеансе пользователя, а не при загрузке машины (проще говоря — почему в контексте User, а не Computer)? |
||
Отправлено: 23:10, 23-03-2012 | #4 |
Старожил Сообщения: 263
|
Профиль | Отправить PM | Цитировать Copter, могу предложить такой вариант, перед началом копирования запускается файлик exe вот что он выводит
![]() а после завершения копирования просто taskill-ом убиваешь данный процесс и сообщение пропадает ну а про сообщение "нажмите ок" с этим и js справиться.... примерно так: @echo off start c:\mess.exe @xcopy \\server\programka\*.* "c:\Program Files\programka\" /s /e /y taskkill /f /im mess.exe @echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js echo WSHShell.Popup("Обновление закончено... нажмите "OK" и приступайте к работе..."); >> %temp%\mes.js start /w %temp%\mes.js deltree /y %temp%\mes.js exit до запуска обновления... reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v DisallowRun /t REG_DWORD /d 1 /f reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun" /v 1 /t REG_SZ /d Programka.exe /f ![]() после обновления... |
|
Последний раз редактировалось zion87, 25-03-2012 в 09:48. Отправлено: 08:50, 24-03-2012 | #5 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Iska, По поводу 1 пункта я с Вами полностью согласен, серьёзная неточность.
Со вторым видимо придётся смириться. По поводу же третьего пункта спорно. Юзеры конечно могут запустить прогу, но все-таки когда видишь сообщение типа "руки проч от клавы пока не разрешу!!!" здравый смысл должен победить... наверное... А вот что касается вопроса "почему User, а не Computer?", то ответ заключается в том что в домене порядка сотни компов. "Програмкой" пользуются около 30-ти. Но проблема в том что народ не сидит на своих местах а бегает с компа на комп(дурдом , но тут против руководства не попрешь).Отлавливать кто куда сегодня сел и менять параметры Груповой политики как-то не серьёзно. А нагружать сервак копированием на сотню компов сразу черевато - заходят с утра все почти одновременно и как результат копирование может длиться до 20-30 минут(проверено). А вообще мне очень понравилась идея zion87 (за что ему огромное спасибо) блокировать в реестре запуск проги. В этом случае достаточно 1 раз объяснить юзерам,что если при запуске проги с утра выходит сообщение: ![]() то надо подождать до появление окошка "Обновление закончено... нажмите "OK" и приступайте к работе... ". При этом они могут спокойно заниматься другими делами (благо других рабочих прог у них хватает). Относительно WiX, идея хорошая но надо разбираться а хотелось решить вопрос максимально просто ) Ответ на главный свой вопрос "как закрыть выведенное ранее сообщение, средствами JavaScript" я получил - НИКАК. Зато теперь появились иные решения самой задачи обновления. Но это уже другая история. Всем большое спасибо, думаю тему можно закрывать. |
Отправлено: 09:46, 27-03-2012 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Copter:
Цитата Copter:
|
||
Отправлено: 10:05, 27-03-2012 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
При обновлении стрницы php появляется сообщение как его убрать? | Ferum01 | Вебмастеру | 1 | 29-11-2010 17:41 | |
[решено] Как вывести сообщение во время выолнения команды? | Centrinar | AutoIt | 6 | 11-02-2010 00:40 | |
[решено] как выдать сообщение не остонавливая скрипт до закрытия его пользователем? | andr_mozg | AutoIt | 10 | 09-01-2010 23:42 | |
CMD/BAT - [решено] вывести сообщение на экран если файл весит больше 1 гига | mars | Скриптовые языки администрирования Windows | 2 | 14-12-2009 11:03 | |
Как вывести сообщение после входа в учетную запись, а не при загрузке Windows? | Unique_User | Microsoft Windows 2000/XP | 7 | 21-03-2007 12:51 |
|