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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Не передается переменная во вложенный цикл

Ответить
Настройки темы
CMD/BAT - Не передается переменная во вложенный цикл

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


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

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


Добрый день, в процессе написания скрипта по удалению всех версий Adobe Flash столкнулся с тем что переменная "Arg" при повторном прохождении цикла переменная не передается.
Подскажите почему и как быть?

Код: Выделить весь код
setlocal EnableDelayedExpansion
For /F "Tokens=7 Delims==\" %%A IN ('Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /F Flash') DO (( 
	set Arg=%%A )&( 
		For /F "Tokens=3 skip=2" %%B IN ('Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\!Arg!" /V UninstallString') DO (
			call "%%B" -uninstall && Echo !Arg! >> "%X%Report\Record_antivirus\record_%COMPUTERNAME%.txt"
				)))
Результат выполнения

Код: Выделить весь код
C:\>For /F "Tokens=7 Delims==\" %A IN ('Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /F Flash') DO ((set Arg=%A  )  & (For /F "Tokens=3 skip=2" %B IN ('Reg Qu
ery "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\!Arg!" /V UninstallString') DO (call "%B" -uninstall   && Echo !Arg!  1>>"C:\PKZI\Report\Record_antivirus\record_DACZC4181YC
5.txt" ) ) )

C:\>((set Arg=Adobe Flash Player ActiveX  )  & (For /F "Tokens=3 skip=2" %B IN ('Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\!Arg!" /V UninstallString') DO (c
all "%B" -uninstall   && Echo !Arg!  1>>"C:\Report\record_DACZC4181YC5.txt" ) ) )

C:\>(call "C:\Windows\system32\Macromed\Flash\FlashUtil32_21_0_0_197_ActiveX.exe" -uninstall   && Echo !Arg!  1>>"C:\Report\record_DACZC4181YC5.txt" )

C:\>((set Arg=Adobe Flash Player PPAPI  )  & (For /F "Tokens=3 skip=2" %B IN ('Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\!Arg!" /V UninstallString') DO (cal
l "%B" -uninstall   && Echo !Arg!  1>>"C:\Report\record_DACZC4181YC5.txt" ) ) )
Ошибка: Не удается найти указанный раздел или параметр в реестре.

Отправлено: 16:15, 06-04-2016

 

Ветеран


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

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


Попробуйте так:
Код: Выделить весь код
@echo off
setlocal EnableDelayedExpansion
For /F "Tokens=7 Delims==\" %%A IN ('Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /F Flash') DO (
 set Arg=%%A
 For /F "Tokens=3 skip=2" %%B IN ('Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\!Arg: =!" /V UninstallString') DO (
  call "%%B" -uninstall && Echo !Arg: =! >> "%X%Report\Record_antivirus\record_%COMPUTERNAME%.txt"
))
exit
.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:34, 07-04-2016 | #2



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

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


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


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

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


Эффект тот же (((

Отправлено: 13:38, 07-04-2016 | #3


Ветеран


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

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


8ash8,
Код: Выделить весь код
@echo off
for /f "tokens=7 delims=\" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"^|find "Flash"') do (
 for /f "tokens=3" %%b in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%%~a" /v "UninstallString"^|find "UninstallString"') do (
  call "%%~b" -uninstall && echo [%%a]-delete>>"%X%Report\Record_antivirus\record_%COMPUTERNAME%.txt"
))
exit /b
.

Отправлено: 00:21, 08-04-2016 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Не передается переменная во вложенный цикл

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Вложенный цикл в цикле etherlord Скриптовые языки администрирования Windows 4 27-04-2023 06:03
CMD/BAT - Редактирование excel`евской формулы, или тройной вложенный цикл osob1 Скриптовые языки администрирования Windows 0 14-07-2014 11:45
CMD/BAT - [решено] вложенный цикл for с условием if ivanxam Скриптовые языки администрирования Windows 14 23-05-2014 21:24
Не передается сигнал с видеокарты nuvellon Непонятные проблемы с Железом 10 03-09-2013 22:35
Доступ - [решено] Не передается доступ к папкам Sasuke Microsoft Windows 2000/XP 3 12-05-2008 20:58




 
Переход