8ash8
06-04-2016, 16:15
Добрый день, в процессе написания скрипта по удалению всех версий 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" ) ) )
Ошибка: Не удается найти указанный раздел или параметр в реестре.
Подскажите почему и как быть?
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" ) ) )
Ошибка: Не удается найти указанный раздел или параметр в реестре.