I have a batch file which silently installs Firefox and this works fine. (I add -ms
to the line where I execute the installation file.)
Now I want to update Firefox in the same batch file only if it's not the newest Version. The version test is already in the batch file and is working fine.
And now my Question is: How can I silently update Firefox?
I already tried the steps from this link but they are not working, no errors just doing nothing. Is there maybe another possibility?
Edit:
This is the code of my batch file.
The line if %errorlevel%==1 %INSTALLDIR%\Mozilla Firefox\updater.exe -ms
needs to be replaced with the silent update for Firefox (which is hopefully working).
@echo off
IF %PROCESSOR_ARCHITECTURE%==x86 SET INSTALLDIR=%ProgramFiles%
IF %PROCESSOR_ARCHITECTURE%==AMD64 SET INSTALLDIR=%ProgramFiles(x86)%
IF NOT EXIST "%INSTALLDIR%\Mozilla Firefox\firefox.exe" goto install
REM Update Firefox if the Version is not 37.0
:update
CD %INSTALLDIR%\Mozilla Firefox\
firefox -v | more | find /i "37"
if %errorlevel%==0 goto end
if %errorlevel%==1 %INSTALLDIR%\Mozilla Firefox\updater.exe -ms
goto end
REM Install Firefox if it's not installed yet
:install
\\***\***\Firefox-Setup-37.exe -ms
I suggest for this task the following commented batch code:
@echo off
set "FirefoxFolder="
set "FirefoxVersion=37"
rem Get path of installed Firefox directly from Windows registry.
for /F "skip=2 tokens=1,2*" %%I in ('%SystemRoot%\System32\reg.exe query "HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe" /v Path 2^>nul') do (
if /I "%%I" == "Path" (
set "FirefoxFolder=%%K"
if defined FirefoxFolder goto CheckFirefox
)
)
:InstallFirefox
echo Installing Firefox ...
:UpdateFireFox
\\***\***\Firefox-Setup-%FirefoxVersion%.exe -ms
goto :EOF
:CheckFirefox
if not exist "%FirefoxFolder%\firefox.exe" goto InstallFirefox
rem Check if version of Mozilla Firefox starts with defined number.
rem The space at beginning makes sure to find the major version number.
"%FirefoxFolder%\firefox.exe" -v | %SystemRoot%\System32\more | %SystemRoot%\System32\find.exe " %FirefoxVersion%" >nul
if errorlevel 1 (
echo Updating Firefox to version %FirefoxVersion% ...
goto UpdateFireFox
)
echo Firefox with version %FirefoxVersion% is already installed.
The path to Firefox executable is read directly from Windows registry. This should work on any Windows, even on Windows XP.
I have read that for updating Firefox just the installer must be executed. The installer automatically detects an already installed version of Firefox and updates it without changing the user settings.