Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.4k views
in Technique[技术] by (71.8m points)

batch file - Silently Updating Firefox via Command Prompt (Windows)

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 Firefoxupdater.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 Firefoxfirefox.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 Firefoxupdater.exe -ms
goto end

REM Install Firefox if it's not installed yet
:install
\******Firefox-Setup-37.exe -ms
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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
eg.exe query "HKLMSoftwareMicrosoftWindowsCurrentVersionApp Pathsfirefox.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%System32more | %SystemRoot%System32find.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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...