如何使用 cmd 在机器上安装所有浏览器及其安装位置和浏览器版本(包括 Chrome dev、canary..etc)
How to get all browser's installed on a machine with its install location and browser version (including Chrome dev, canary..etc) using cmd
你好,我正在开发一个使用 selenium 和 python 3.7 的应用程序,通过从浏览器网站获取旧版本和新版本来自动更新浏览器驱动程序,我希望其他 chrome 构建也喜欢金丝雀等...我是命令行和注册表的新手,所以我无法弄明白。
我也试过这段代码:-
@echo off
setlocal enableExtensions
echo.
echo.
echo INSTALLED BROWSERS
echo.
echo.
rem :::::::::::::::::::::::::::::::::::::::::::::::::::::
rem :: exporting registry values for installed browsers
rem :::::::::::::::::::::::::::::::::::::::::::::::::::::
rem for 64 bit systems
START /W REGEDIT /E "%Temp%\BROW3.reg" HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Clients\StartMenuInternet
rem for 32 bit systems
if not exist "%Temp%\BROW3.reg" START /W REGEDIT /E "%Temp%\BROW3.reg" HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet
setLocal enableDelayedExpansion
for /f "tokens=*" %%B in ('type "%Temp%\BROW3.reg" ^| findstr /E "DefaultIcon]"') do (
rem extracting browser name from icon path
set "browser=%%B"
rem removing \DefaultIcon] string
set "browser=!browser:\DefaultIcon]=!"
rem get the browser name
for %%P in ("!browser!") do echo %%~nP
)
endLocal
echo.
echo.
echo EXECUTABLES PATHS
echo.
echo.
setLocal enableDelayedExpansion
for /f "tokens=* delims=@=" %%B in ('type "%Temp%\BROW3.reg" ^| findstr /B "@" ^| findstr /E ".exe\\",0\"^"') do (
set "browser=%%~B"
set "browser=!browser:\=\!"
echo !browser!
)
setLocal enableDelayedExpansion
for /f "tokens=* delims=@=" %%B in ('type "%Temp%\BROW3.reg" ^| findstr /B "@" ^| findstr /E ".exe,0\"^"') do (
set "browser=%%~B"
set "browser=!browser:\=\!"
set "browser=!browser:,0=!"
echo !browser!
)
endLocal
rem delete temp file
del /Q /F "%Temp%\BROW3.reg"
echo.
echo.
echo DEFAULT BROWSER
echo.
echo.
START /W REGEDIT /E "%Temp%\BROW5.reg" HKEY_CLASSES_ROOT\http\shell\open\command
setLocal enableDelayedExpansion
for /f tokens^=3^ delims^=^" %%B in ('type "%Temp%\BROW5.reg" ^| find "@"') do (
set "default=%%B"
rem removing double slashes
set "default=!default:\=\!"
rem removing end slash
set "default=!default:~0,-1!"
rem get the name
for %%D in ("!default!") do echo %%~nD
)
endLocal
del /Q /F "%Temp%\BROW5.reg"
echo.
echo.
echo DEFAULT .HTML VIEWER
echo.
echo.
START /W REGEDIT /E "%Temp%\BROW6.reg" HKEY_CLASSES_ROOT\htmlfile\shell\open\command
setLocal enableDelayedExpansion
for /f tokens^=3^ delims^=^" %%B in ('type "%Temp%\BROW6.reg" ^| find "@"') do (
set "default=%%B"
set "default=!default:\=\!"
set "default=!default:~0,-1!"
for %%D in ("!default!") do echo %%~nD
)
endLocal
del /Q /F "%Temp%\BROW6.reg"
echo.
echo.
pause
输出:-
但不显示 chrome dev
的位置
INSTALLED BROWSERS
Firefox-308046B0AF4A39CB
Google Chrome
Google Chrome Dev
IEXPLORE
Microsoft Edge
EXECUTABLES PATHS
C:\Program Files\Internet Explorer\iexplore.exe
C:\Program Files\Mozilla Firefox\firefox.exe
C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
DEFAULT BROWSER
iexplore
DEFAULT .HTML VIEWER
iexplore
Press any key to continue . . .
@echo off
setlocal enableExtensions
echo.
echo.
echo INSTALLED BROWSERS
echo.
echo.
rem :::::::::::::::::::::::::::::::::::::::::::::::::::::
rem :: exporting registry values for installed browsers
rem :::::::::::::::::::::::::::::::::::::::::::::::::::::
rem for 64 bit systems
START /W REGEDIT /E "%Temp%\BROW3.reg" HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Clients\StartMenuInternet
rem for 32 bit systems
if not exist "%Temp%\BROW3.reg" START /W REGEDIT /E "%Temp%\BROW3.reg" HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet
setLocal enableDelayedExpansion
for /f "tokens=*" %%B in ('type "%Temp%\BROW3.reg" ^| findstr /E "DefaultIcon]"') do (
rem extracting browser name from icon path
set "browser=%%B"
rem removing \DefaultIcon] string
set "browser=!browser:\DefaultIcon]=!"
rem get the browser name
for %%P in ("!browser!") do echo %%~nP
)
endLocal
echo.
echo.
echo EXECUTABLES PATHS
echo.
echo.
setLocal enableDelayedExpansion
for /f "tokens=* delims=@=" %%B in ('type "%Temp%\BROW3.reg" ^| findstr /B "@" ^| findstr /E ".exe\\",0\"^"') do (
set "browser=%%~fB"
set "browser=!browser:\=\!"
echo !browser!
)
setLocal enableDelayedExpansion
for /f "tokens=* delims=@=" %%B in ('type "%Temp%\BROW3.reg" ^| findstr /B "@" ^| findstr /E ".exe,0\"^"') do (
set "browser=%%~fB"
set "browser=!browser:\=\!"
set "browser=!browser:,0=!"
echo !browser!
)
endLocal
rem delete temp file
del /Q /F "%Temp%\BROW3.reg"
echo.
echo.
echo DEFAULT BROWSER
echo.
echo.
START /W REGEDIT /E "%Temp%\BROW5.reg" HKEY_CLASSES_ROOT\http\shell\open\command
setLocal enableDelayedExpansion
for /f tokens^=3^ delims^=^" %%B in ('type "%Temp%\BROW5.reg" ^| find "@"') do (
set "default=%%B"
rem removing double slashes
set "default=!default:\=\!"
rem removing end slash
set "default=!default:~0,-1!"
rem get the name
for %%D in ("!default!") do echo %%~nD
)
endLocal
del /Q /F "%Temp%\BROW5.reg"
echo.
echo.
echo DEFAULT .HTML VIEWER
echo.
echo.
START /W REGEDIT /E "%Temp%\BROW6.reg" HKEY_CLASSES_ROOT\htmlfile\shell\open\command
setLocal enableDelayedExpansion
for /f tokens^=3^ delims^=^" %%B in ('type "%Temp%\BROW6.reg" ^| find "@"') do (
set "default=%%B"
set "default=!default:\=\!"
set "default=!default:~0,-1!"
for %%D in ("!default!") do echo %%~nD
)
endLocal
del /Q /F "%Temp%\BROW6.reg"
echo.
echo.
pause
这应该可以解决您的 Chrome Dev
问题,但是,文件的 DEFAULT BROWSER
和 DEFAULT HTML VIEWER
部分存在一些错误,我不明白为什么它不工作。我在默认 html 处理程序和浏览器 Brave 中注意到一件事,他们创建了自己的 html 标签 Brave HTML Document
,它与注册表中的 htmlfile
和 ftype
命令。我的 ftype
输出单独显示 Brave HTML file
,iexplorer
作为我的默认 html 和 https 处理程序,两者都不正确。我不知道这是为什么,我也想知道,但由于这是一个不同的问题,你应该问一个不同的问题。
@echo off
echo:
echo INSTALLED BROWSERS
echo:
for /f "delims=" %%A in (
'reg query HKLM\SOFTWARE\Clients\StartMenuInternet /k /f *'
) do (
for /f "tokens=1,2,*" %%B in (
'2^>nul reg query "%%~A\defaulticon" /ve ^| findstr /v "^HKEY"'
) do (
echo "%%~nD"
)
)
echo:
echo EXECUTABLES PATHS
echo:
for /f "delims=" %%A in (
'reg query HKLM\SOFTWARE\Clients\StartMenuInternet /k /f *'
) do (
for /f "tokens=1,2,*" %%B in (
'2^>nul reg query "%%~A\shell\open\command" /ve ^| findstr /v "^HKEY"'
) do (
echo "%%~D"
)
)
echo:
echo DEFAULT BROWSER
echo:
for /f "tokens=1,2,*" %%A in (
'reg query HKCR\http\shell\open\command /ve ^| findstr /v "^HKEY"'
) do (
echo "%%~nC"
)
echo:
echo DEFAULT .HTML VIEWER
echo:
for /f "tokens=1,2,*" %%A in (
'reg query HKCR\htmlfile\shell\open\command /ve ^| findstr /v "^HKEY"'
) do (
echo "%%~nC"
)
echo:
pause
可以通过 reg query
消除对临时文件的使用,并避免 regedit
这可能需要管理员权限。
虽然您可以根据需要删除引号,但输出是双引号。
未使用命名变量,因此未使用 setlocal
。
我没有安装 Chrome Dev,所以如果在我当前的环境中检测到的是未知的,所以我将显示我在 Windows 7:
上获得的输出
INSTALLED BROWSERS
"firefox"
"chrome"
"iexplore"
EXECUTABLES PATHS
"C:\Program Files\Mozilla Firefox\firefox.exe"
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
"C:\Program Files\Internet Explorer\iexplore.exe"
DEFAULT BROWSER
"iexplore"
DEFAULT .HTML VIEWER
"iexplore"
Press any key to continue . . .
如果您需要浏览器版本,此 Firefox 版本示例可能有助于指导:
for /f "tokens=1,2,*" %%A in (
'2^>nul reg query "HKLM\SOFTWARE\Mozilla\Mozilla Firefox" /ve ^| findstr /v "^HKEY"'
) do (
echo "%%~C"
)
你好,我正在开发一个使用 selenium 和 python 3.7 的应用程序,通过从浏览器网站获取旧版本和新版本来自动更新浏览器驱动程序,我希望其他 chrome 构建也喜欢金丝雀等...我是命令行和注册表的新手,所以我无法弄明白。
我也试过这段代码:-
@echo off
setlocal enableExtensions
echo.
echo.
echo INSTALLED BROWSERS
echo.
echo.
rem :::::::::::::::::::::::::::::::::::::::::::::::::::::
rem :: exporting registry values for installed browsers
rem :::::::::::::::::::::::::::::::::::::::::::::::::::::
rem for 64 bit systems
START /W REGEDIT /E "%Temp%\BROW3.reg" HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Clients\StartMenuInternet
rem for 32 bit systems
if not exist "%Temp%\BROW3.reg" START /W REGEDIT /E "%Temp%\BROW3.reg" HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet
setLocal enableDelayedExpansion
for /f "tokens=*" %%B in ('type "%Temp%\BROW3.reg" ^| findstr /E "DefaultIcon]"') do (
rem extracting browser name from icon path
set "browser=%%B"
rem removing \DefaultIcon] string
set "browser=!browser:\DefaultIcon]=!"
rem get the browser name
for %%P in ("!browser!") do echo %%~nP
)
endLocal
echo.
echo.
echo EXECUTABLES PATHS
echo.
echo.
setLocal enableDelayedExpansion
for /f "tokens=* delims=@=" %%B in ('type "%Temp%\BROW3.reg" ^| findstr /B "@" ^| findstr /E ".exe\\",0\"^"') do (
set "browser=%%~B"
set "browser=!browser:\=\!"
echo !browser!
)
setLocal enableDelayedExpansion
for /f "tokens=* delims=@=" %%B in ('type "%Temp%\BROW3.reg" ^| findstr /B "@" ^| findstr /E ".exe,0\"^"') do (
set "browser=%%~B"
set "browser=!browser:\=\!"
set "browser=!browser:,0=!"
echo !browser!
)
endLocal
rem delete temp file
del /Q /F "%Temp%\BROW3.reg"
echo.
echo.
echo DEFAULT BROWSER
echo.
echo.
START /W REGEDIT /E "%Temp%\BROW5.reg" HKEY_CLASSES_ROOT\http\shell\open\command
setLocal enableDelayedExpansion
for /f tokens^=3^ delims^=^" %%B in ('type "%Temp%\BROW5.reg" ^| find "@"') do (
set "default=%%B"
rem removing double slashes
set "default=!default:\=\!"
rem removing end slash
set "default=!default:~0,-1!"
rem get the name
for %%D in ("!default!") do echo %%~nD
)
endLocal
del /Q /F "%Temp%\BROW5.reg"
echo.
echo.
echo DEFAULT .HTML VIEWER
echo.
echo.
START /W REGEDIT /E "%Temp%\BROW6.reg" HKEY_CLASSES_ROOT\htmlfile\shell\open\command
setLocal enableDelayedExpansion
for /f tokens^=3^ delims^=^" %%B in ('type "%Temp%\BROW6.reg" ^| find "@"') do (
set "default=%%B"
set "default=!default:\=\!"
set "default=!default:~0,-1!"
for %%D in ("!default!") do echo %%~nD
)
endLocal
del /Q /F "%Temp%\BROW6.reg"
echo.
echo.
pause
输出:- 但不显示 chrome dev
的位置INSTALLED BROWSERS
Firefox-308046B0AF4A39CB
Google Chrome
Google Chrome Dev
IEXPLORE
Microsoft Edge
EXECUTABLES PATHS
C:\Program Files\Internet Explorer\iexplore.exe
C:\Program Files\Mozilla Firefox\firefox.exe
C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
DEFAULT BROWSER
iexplore
DEFAULT .HTML VIEWER
iexplore
Press any key to continue . . .
@echo off
setlocal enableExtensions
echo.
echo.
echo INSTALLED BROWSERS
echo.
echo.
rem :::::::::::::::::::::::::::::::::::::::::::::::::::::
rem :: exporting registry values for installed browsers
rem :::::::::::::::::::::::::::::::::::::::::::::::::::::
rem for 64 bit systems
START /W REGEDIT /E "%Temp%\BROW3.reg" HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Clients\StartMenuInternet
rem for 32 bit systems
if not exist "%Temp%\BROW3.reg" START /W REGEDIT /E "%Temp%\BROW3.reg" HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet
setLocal enableDelayedExpansion
for /f "tokens=*" %%B in ('type "%Temp%\BROW3.reg" ^| findstr /E "DefaultIcon]"') do (
rem extracting browser name from icon path
set "browser=%%B"
rem removing \DefaultIcon] string
set "browser=!browser:\DefaultIcon]=!"
rem get the browser name
for %%P in ("!browser!") do echo %%~nP
)
endLocal
echo.
echo.
echo EXECUTABLES PATHS
echo.
echo.
setLocal enableDelayedExpansion
for /f "tokens=* delims=@=" %%B in ('type "%Temp%\BROW3.reg" ^| findstr /B "@" ^| findstr /E ".exe\\",0\"^"') do (
set "browser=%%~fB"
set "browser=!browser:\=\!"
echo !browser!
)
setLocal enableDelayedExpansion
for /f "tokens=* delims=@=" %%B in ('type "%Temp%\BROW3.reg" ^| findstr /B "@" ^| findstr /E ".exe,0\"^"') do (
set "browser=%%~fB"
set "browser=!browser:\=\!"
set "browser=!browser:,0=!"
echo !browser!
)
endLocal
rem delete temp file
del /Q /F "%Temp%\BROW3.reg"
echo.
echo.
echo DEFAULT BROWSER
echo.
echo.
START /W REGEDIT /E "%Temp%\BROW5.reg" HKEY_CLASSES_ROOT\http\shell\open\command
setLocal enableDelayedExpansion
for /f tokens^=3^ delims^=^" %%B in ('type "%Temp%\BROW5.reg" ^| find "@"') do (
set "default=%%B"
rem removing double slashes
set "default=!default:\=\!"
rem removing end slash
set "default=!default:~0,-1!"
rem get the name
for %%D in ("!default!") do echo %%~nD
)
endLocal
del /Q /F "%Temp%\BROW5.reg"
echo.
echo.
echo DEFAULT .HTML VIEWER
echo.
echo.
START /W REGEDIT /E "%Temp%\BROW6.reg" HKEY_CLASSES_ROOT\htmlfile\shell\open\command
setLocal enableDelayedExpansion
for /f tokens^=3^ delims^=^" %%B in ('type "%Temp%\BROW6.reg" ^| find "@"') do (
set "default=%%B"
set "default=!default:\=\!"
set "default=!default:~0,-1!"
for %%D in ("!default!") do echo %%~nD
)
endLocal
del /Q /F "%Temp%\BROW6.reg"
echo.
echo.
pause
这应该可以解决您的 Chrome Dev
问题,但是,文件的 DEFAULT BROWSER
和 DEFAULT HTML VIEWER
部分存在一些错误,我不明白为什么它不工作。我在默认 html 处理程序和浏览器 Brave 中注意到一件事,他们创建了自己的 html 标签 Brave HTML Document
,它与注册表中的 htmlfile
和 ftype
命令。我的 ftype
输出单独显示 Brave HTML file
,iexplorer
作为我的默认 html 和 https 处理程序,两者都不正确。我不知道这是为什么,我也想知道,但由于这是一个不同的问题,你应该问一个不同的问题。
@echo off
echo:
echo INSTALLED BROWSERS
echo:
for /f "delims=" %%A in (
'reg query HKLM\SOFTWARE\Clients\StartMenuInternet /k /f *'
) do (
for /f "tokens=1,2,*" %%B in (
'2^>nul reg query "%%~A\defaulticon" /ve ^| findstr /v "^HKEY"'
) do (
echo "%%~nD"
)
)
echo:
echo EXECUTABLES PATHS
echo:
for /f "delims=" %%A in (
'reg query HKLM\SOFTWARE\Clients\StartMenuInternet /k /f *'
) do (
for /f "tokens=1,2,*" %%B in (
'2^>nul reg query "%%~A\shell\open\command" /ve ^| findstr /v "^HKEY"'
) do (
echo "%%~D"
)
)
echo:
echo DEFAULT BROWSER
echo:
for /f "tokens=1,2,*" %%A in (
'reg query HKCR\http\shell\open\command /ve ^| findstr /v "^HKEY"'
) do (
echo "%%~nC"
)
echo:
echo DEFAULT .HTML VIEWER
echo:
for /f "tokens=1,2,*" %%A in (
'reg query HKCR\htmlfile\shell\open\command /ve ^| findstr /v "^HKEY"'
) do (
echo "%%~nC"
)
echo:
pause
可以通过 reg query
消除对临时文件的使用,并避免 regedit
这可能需要管理员权限。
虽然您可以根据需要删除引号,但输出是双引号。
未使用命名变量,因此未使用 setlocal
。
我没有安装 Chrome Dev,所以如果在我当前的环境中检测到的是未知的,所以我将显示我在 Windows 7:
上获得的输出INSTALLED BROWSERS "firefox" "chrome" "iexplore" EXECUTABLES PATHS "C:\Program Files\Mozilla Firefox\firefox.exe" "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "C:\Program Files\Internet Explorer\iexplore.exe" DEFAULT BROWSER "iexplore" DEFAULT .HTML VIEWER "iexplore" Press any key to continue . . .
如果您需要浏览器版本,此 Firefox 版本示例可能有助于指导:
for /f "tokens=1,2,*" %%A in (
'2^>nul reg query "HKLM\SOFTWARE\Mozilla\Mozilla Firefox" /ve ^| findstr /v "^HKEY"'
) do (
echo "%%~C"
)