我需要一些帮助来完成以下工作。它以前可以(与其他软件一起使用),但在 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”处,我就会得到我正在寻找的信息。但是,一旦我进入 () 内部的最后一部分,那就是我得到错误的时候。