我需要一些帮助才能完成以下工作。它之前(使用其他软件)是有效的,但在Flash的情况下,它不是。我想要完成的是检查已安装的Flash版本。如果安装的Flash版本不是我想要的,我希望脚本卸载当前版本并安装我想要的版本。
:: Check Flash version and install if not matching.
:: Set version to check for.
SET latestVersion=11.5.502.135
SET key="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Flash Player Plugin"
for /f "tokens=3 delims= " %%G in ('reg query %key% /v DisplayVersion ^| findstr /i current') do (
echo %%G
if %%G EQU %latestVersion% goto END
if %%G NEQ %latestVersion% goto Install
)
:INSTALL
:: Kill IE & FF
taskkill /f /im iexplore.exe /im firefox.exe
::Uninstall Flash
\\path-to-server\Flash-FF-11.8.800.94.exe -uninstall
:: Install Flash for Firefox
\\path-to-server\Flash-FF-11.5.502.135.exe -install
:: Install Flash for IE
\\path-to-server\Flash-IE-11.5.502.135.exe -install
:: Kill Flash updating
COPY /y \\path-to-server\mms.cfg C:\WINDOWS\System32\Macromed\Flash\mms.cfg
:END
问题是它没有读取已安装的版本。它不是像11.5.502.135那样回应,而是回响“%G”。由于%G不等于我想要的版本(11.5.502.135),因此每次都会安装。
如此缩小范围,以下是我的问题:
for /f "tokens=3 delims= " %%G in ('reg query %key% /v DisplayVersion ^| findstr /i current') do (
echo %%G
if %%G EQU %latestVersion% goto END
if %%G NEQ %latestVersion% goto Install
)
当手动输入时,只要我停在“DisplayVersion”,我就会得到我正在寻找的信息。但是,一旦我进入()内部的最后一部分,那就是我得到错误。
答案 0 :(得分:2)
for /f "tokens=2*" %%a in ('reg query "HKEY_CURRENT_USER\Software\Macromedia\FlashPlayerUpdate" /v version') DO SET "FlashVersion=%%b"
echo %FlashVersion%
答案 1 :(得分:0)
要检查此计算机上安装的当前版本的Adobe Flash Player,您应该执行以下类型的批处理文件:
@echo off
for /f "tokens=2*" %%a in (
'reg query "HKEY_LOCAL_MACHINE\Software\Macromedia\FlashPlayerPlugin" /v version'
) DO SET "FlashVersion=%%b"
echo Current Flash Player Version Installed is : "%FlashVersion%" on this computer %ComputerName%
pause
<强> 修改 强>
当他想从他们的在线安装程序安装Flash播放器时,有人可能会遇到此类错误(连接失败或应用程序初始化错误),这种情况发生在我身上,因此,我决定创建一个批处理文件来修复此类错误通过下载卸载程序并卸载所有以前的版本并下载带有完整安装的最新Adobe Flash Player(脱机安装程序),并在后台静默安装。