![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] При передачи данных из цикла For в подпрограмму происходит 2х кратный вызов последней |
|
CMD/BAT - [решено] При передачи данных из цикла For в подпрограмму происходит 2х кратный вызов последней
|
Новый участник Сообщения: 36 |
Добрый день, в процессе написания скрипта для удаления ПО столкнулся с такой проблемой: при передачи данных из цикла For в подпрограмму происходит 2х кратный вызов последней и как следствие остается 2 записи в логах.
cls set X=%~dp0 For /F "tokens=2 delims==" %%A In ('WMIC PRODUCT Where "Name LIKE 'Adobe%% Reader%%'" GET Name^, IdentifyingNumber /value^|Findstr "="') Do (set Arg=%%A & Call :De1 Arg) :De1 if %Arg:~0,1% neq { (echo %Arg% >> "%X%Insid.txt") else ( START /WAIT MsiExec.exe /X%Arg% /qn /norestart) Exit /B Отсюда 2 вопроса: 1. Почему так происходит. 2. Как это исправить (обойти). |
|
Отправлено: 19:12, 29-03-2016 |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать Перед :De1 вставить строку GoTo :Eof либо Exit, если надо, с ключом.
(1) Инструкции обрабатываются последовательно. :De1 это метка сначала в for вы вызываете кусок кода по метке :De1 как процедуру. После выполнения For переходим к выполнению следующей инструкции. Метка она и в Африке метка и никак не влияет на выполнение программы, если на неё не ссылаться. Поэтому при окончании кода головной части батника отделите её от процедуры GoTo :Eof либо Exit И вообще, каждую процедуру, если их несколько, надо отделять от последующей, GoTo :Eof либо Exit, так как см. (1) Полезно еще прочитать хелп (в командной строке Call /?) |
------- Последний раз редактировалось megaloman, 29-03-2016 в 20:33. Отправлено: 20:00, 29-03-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Для надёжного разбора вывода команды "WMIC" лучше использовать такой код:
@echo off for /f "tokens=1,2 delims==" %%A in (' wmic product where "Name like 'Adobe%% Reader%%'" get Name^, IdentifyingNumber /value ') do ( for /f "delims=" %%C in ("%%B") do ( if /i "%%A" neq "IdentifyingNumber" ( echo %%C>>"%~dp0Insid.txt" ) else ( start /wait MsiExec.exe /x%%C /qn /norestart ) ) ) exit /b |
Отправлено: 20:56, 29-03-2016 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] При копировании не происходит преобразовании из переменной в путь назначения | 8ash8 | Скриптовые языки администрирования Windows | 2 | 21-03-2016 15:36 | |
Вопрос - [решено] Вопрос по сетевой безопасности при передачи данных в сети Интернет. | AtosPolon | Защита компьютерных систем | 6 | 24-11-2014 20:16 | |
VBS/WSH/JS - Экспорт данных их Excel в Sql Server без цикла. VBS | LilLoco | Программирование и базы данных | 2 | 19-11-2012 12:55 | |
VBS/WSH/JS - [решено] Проблема передачи параметров в скрипт при запуске из ярлыка | gora | Скриптовые языки администрирования Windows | 1 | 08-09-2011 13:26 | |
Скорость передачи данных в интернет при XP-SP2 | rik_ | Microsoft Windows 2000/XP | 13 | 27-11-2006 19:54 |
|