飘水 发表于 2024-4-7 17:51

如何通过批处理命令操作注册表修改默认打开方式

求助如何通过批处理命令操作注册表修改默认打开方式?
重装系统后,图片、视频、音乐文件等想通过第三方软件打开,第三方软件不安装,直接用绿色版,将绿色版的第三方软件作为默认打开图片、视频、音乐文件等,如何通过批处理修改注册表的方式实现?
譬如修改.JPG\.MP3\.MP4\.AVI默认打开方式,
用绿色软件“d:\tools\picture\FastStoneImageViewer.exe”打开扩展名为JPG\BMP等文件
用绿色软件“d:\tools\music\千千静听.exe”打开扩展名为.mid\.mp3等文件
用绿色软件“d:\tools\video\KMPlayer.exe”打开扩展名为.MP4\.avi等文件

求大佬给个模版,琢磨了好久都不能成功!非常感谢!!!

飘水 发表于 2024-4-7 22:06

@echo off
set "MusicDir=%~dp0D:\Program_Files_\MP3_Player\千千静听"
set "MusicDirReg=%MusicDir:\=\\%"
if "%1"=="" (
    call :Main
) else (
    call :%1
    if not "%2"=="SkipRefresh" (
      assoc .=.
    )
) >nul 2>nul
exit /b
::以管理员身份运行
:Main
    title 关联文件
    fltmc >nul || mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx0","%*",,"runas",1)(window.close) && exit /b
    fltmc >nul || mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx0","%*",,"runas",1)(window.close) && exit /b

call "%~dpnx0" Install




::执行创建注册表关联项
:Install
    (
      echo Windows Registry Editor Version 5.00
      call :RegAssocAATTPlayer1
      call :RegAssocAACTTPlayer1
      call :RegAssocA52TTPlayer1
      call :RegAssocAC3TTPlayer1
      call :RegAssocAIFTTPlayer1
      call :RegAssocAIFCTTPlayer1
      call :RegAssocAIFFTTPlayer1
      call :RegAssocAUTTPlayer1
      call :RegAssocSNDTTPlayer1
      call :RegAssocCDATTPlayer1
      call :RegAssocCUETTPlayer1
      call :RegAssocDTSTTPlayer1
      call :RegAssocDTSWAVTTPlayer1
      call :RegAssocFLATTPlayer1
      call :RegAssocFLACTTPlayer1
      call :RegAssocMIDITTPlayer1
      call :RegAssocMIDTTPlayer1
      call :RegAssocRMITTPlayer1
      call :RegAssocMODTTPlayer1
      call :RegAssocFARTTPlayer1
      call :RegAssocITTTPlayer1
      call :RegAssocMTMTTPlayer1
      call :RegAssocS3MTTPlayer1
      call :RegAssocUMXTTPlayer1
      call :RegAssocXMTTPlayer1
      call :RegAssocAPETTPlayer1
      call :RegAssocMACTTPlayer1
      call :RegAssocMP1TTPlayer1
      call :RegAssocMP2TTPlayer1
      call :RegAssocMP3TTPlayer1
      call :RegAssocMP3PROTTPlayer1
      call :RegAssocMPATTPlayer1
      call :RegAssocM4ATTPlayer1
      call :RegAssocMP+TTPlayer1
      call :RegAssocMPCTTPlayer1
      call :RegAssocOPUSTTPlayer1
      call :RegAssocRATTPlayer1
      call :RegAssocTAKTTPlayer1
      call :RegAssocTTATTPlayer1
      call :RegAssocOGGTTPlayer1
      call :RegAssocWAVTTPlayer1
      call :RegAssocWMATTPlayer1
      call :RegAssocM3UTTPlayer1
      call :RegAssocM3U8TTPlayer1
      call :RegAssocTTBLTTPlayer1
      call :RegAssocTTPLTTPlayer1
    ) >"%Temp%\Install_YinYue.reg"
    reg import "%Temp%\Install_YinYue.reg"
    del /f "%Temp%\Install_YinYue.reg"
goto :eof

::关联相关文件类型
:RegAssoc :: <%1=Ext> <%2=ExeName> <%3=IconIndex>
    echo
    echo @="%MusicDirReg%\\%2.exe,%3"
    echo
    echo @="\"%MusicDirReg%\\%2.exe\" \"%%1\""
    echo
    echo @="TTPlayer.%1"
goto :eof

::timeout /t 6 >nul
pause

上述批处理运行无效

飘水 发表于 2024-4-7 22:07

@echo off
    fltmc >nul || mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx0","%*",,"runas",1)(window.close) && exit /b

for %%a in (midi mid) do (
      reg add "HKCR\TTPlayer.%%a\Shell\Open\Command" /f /ve /t REG_SZ /d "\"%~sdp0TTPlayer.exe\" \"%%1\""
      reg add "HKCR\.%%a" /f /ve /t REG_SZ /d "TTPlayer.%%a"
) >nul 2>nul

pause

上述批处理运行无效

飘水 发表于 2024-4-7 22:07

@echo Off
::【关联:用“千千静听.exe”打开扩展名为 “.mid”的文件】
REG add HKCR\.mid /ve /t REG_SZ /d "midfile" /f
assoc .mid=midfile
::ftype midfile="D:\Program_Files_\MP3_Player\Winamp\winamp.exe" "%%1"

ftype midfile="D:\Program_Files_\MP3_Player\千千静听\TTPlayer.exe" "%%1"

::exit

::D:\Program_Files_\MP3_Player\Winamp\winamp.exe
::D:\Program_Files_\MP3_Player\千千静听\TTPlayer.exe

pause

用上述操作不成功,Windows11系统

飘水 发表于 2024-4-7 22:16

我都无语了

飘水 发表于 2024-4-8 23:48

有懂的大佬给指点一下,我实在是无能为力啊,求大佬帮助一下
页: [1]
查看完整版本: 如何通过批处理命令操作注册表修改默认打开方式