 |
|
Не передается переменная во вложенный цикл
Добрый день, в процессе написания скрипта по удалению всех версий 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" ) ) )
Ошибка: Не удается найти указанный раздел или параметр в реестре.
|
Попробуйте так:
Код:
@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
.
|
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
.
|
Время: 03:23.
© OSzone.net 2001-