![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - синтаксис bat -ника |
|
|
CMD/BAT - синтаксис bat -ника
|
Ветеран Сообщения: 2821 |
собственно вопрос в синтаксисе - если в цикле "если, то" команда со свитчами, надо-ли её как-то выделять? Кавычками там или скобками, чтоб исполняющий софт не понял, что команда уже закончена и надо ожидать ELSE
гугление ответа не даёт, а сам что-то склерожу совершенно жестоко. Если привязаться к конкретно скрипту, то сейчас рисую такое - (даётся лист машин с проблемами всуса, на них останавливается служба винапдейта и в зависимости от версии выни тихо и с последующим принудительным рестартом устанавливается обновление клиента винапдейта для вин 8 или 7. ) set DomainUserUPN=(мойдомен)\(админскийакк) set /P DomainUserPassword=password... set FLOG=%~n0.log set FLIST=ADlist.txt set w7up=Windows6.1-KB3172605-x86(WU_update).msu set w8up=Windows8.1-KB3172614-x86(WU_update).msu if exist %FLOG% set FLIST=%FLOG% for /f "tokens=*" %%i in (%FLIST%) do call :updWU %%i goto RETURN :updWU for %%k in ( bits,wuauserv,appidsvc,cryptsvc ) do ( psexec \\%1 -u %DomainUserUPN% - p %DomainUserPassword% net stop %%k ) if /f "skip=4 delims=" %%G in ('systeminfo | findstr /B /C:"OS Name" /C:"OS Version"') EQU 7 start %w7up% /quiet /forcerestart else start %w8up% /quiet /forcerestart if /f "skip=4 delims=" %%G in ('psinfo \\%1 -u %DomainUserUPN% - p %DomainUserPassword% kernel') EQU 7 start %w7up% /quiet /forcerestart else start %w8up% /quiet /forcerestart Можно, конечно, выделить в goto, но неужели нет изящного в одну строку решения? это не единственная проблема, вопросы к синтаксису будут регулярно, наверно, возникать)) |
|
Отправлено: 17:31, 22-12-2016 |
Ветеран Сообщения: 2205
|
Профиль | Отправить PM | Цитировать Цитата bredych:
![]() |
|
Отправлено: 17:42, 22-12-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать |
Отправлено: 19:53, 22-12-2016 | #3 |
Ветеран Сообщения: 2821
|
Профиль | Отправить PM | Цитировать alpap, мне для удалённой машины... Точнее машин. Не локальной.
|
------- Отправлено: 09:42, 23-12-2016 | #4 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 13:13, 23-12-2016 | #5 |
Ветеран Сообщения: 2821
|
Профиль | Отправить PM | Цитировать о, не знал, что она с сетью умеет, спасибо
хм.. попробовал.. :updWU for %%k in ( bits,wuauserv,appidsvc,cryptsvc ) do ( psexec \\%1 -u %DomainUserUPN% -p %DomainUserPassword% net stop %%k ) for /f "tokens=3" %%a in ('wmic /node:%1 path Win32_OperatingSystem get Caption /value^|find "="') do if %%a==7 goto w7 else if %%a==8 goto w8 pause :w7 psexec \\%1 -u %DomainUserUPN% -p %DomainUserPassword% -i -d -c D:\Install\SysTools\%w7up% /quiet /forcerestart goto returm :w8 psexec \\%1 -u %DomainUserUPN% -p %DomainUserPassword% -i -d -c D:\Install\SysTools\%w8up% /quiet /forcerestart goto return :return Вы об этом? Или еще где-то накосячено? |
------- Отправлено: 15:51, 23-12-2016 | #6 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать тогда уже аккуратнее так (вы все скобки растеряли):
... for /f "tokens=3" %%a in ('wmic /node:%1 path Win32_OperatingSystem get Caption /value^|find "="') do ( if %%a==7 set "up=Windows6.1-KB3172605-x86(WU_update).msu" if %%a==8 set "up=Windows8.1-KB3172614-x86(WU_update).msu" ) psexec \\%1 -u %DomainUserUPN% -p %DomainUserPassword% -i -d -c D:\Install\SysTools\%up% /quiet /forcerestart ... |
Отправлено: 16:20, 23-12-2016 | #7 |
Ветеран Сообщения: 2821
|
Профиль | Отправить PM | Цитировать хм.. да, спасибо, так аккуратнее, но всё равно invalid global switch.
Где-то косяк в синтаксисе, но какой, не пойму.. |
------- Отправлено: 10:43, 27-12-2016 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 11:34, 27-12-2016 | #9 |
Ветеран Сообщения: 2821
|
Профиль | Отправить PM | Цитировать но это же не имеет смысла
![]() Переменная объявлялась как %1 или %i или я чего-то не знаю и такая запись равноценна первой? попробовал сменить на %%i - получил ERROR: Description = The RPC server is unavailable. попробовал от безысходности на ваше сменить - идентичный ответ. |
------- Отправлено: 17:46, 27-12-2016 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] CMD/BAT - С помощью bat-ника найти и удалить текст в файле | InVariable | Скриптовые языки администрирования Windows | 4 | 22-05-2015 20:06 | |
CMD/BAT - Как выполнить команду с BAT-ника? | MOWGLY1 | Скриптовые языки администрирования Windows | 3 | 29-07-2014 14:45 | |
CMD/BAT - Поиск с помощью Bat ника | shiroq | Скриптовые языки администрирования Windows | 11 | 10-10-2013 07:47 | |
CMD/BAT - С помощью bat-ника заблокировать сайт | DarkSmail | Скриптовые языки администрирования Windows | 2 | 07-05-2013 16:11 | |
CMD/BAT - [решено] Странности в работе bat-ника | Nun-Nun | Скриптовые языки администрирования Windows | 2 | 26-09-2010 09:41 |
|