[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[注册表类] [已解决]用批处理批量添加注册表有多个变量怎么弄

::一
  1. for %%a in (3gp aac avi flac flv m4a midi mid mkv mp3 mp4 mpeg mov ts wav rm wmv rmvb mpg) do (
  2.         reg add "HKCR\MPC-BE.%%a\Shell\Open\Command" /f /ve /t REG_SZ /d "\"%~sdp0MPC-BE.exe\" \"%%1\""
  3.         reg add "HKCR\.%%a" /f /ve /t REG_SZ /d "MPC-BE.%%a"
  4. ) >nul 2>nul
复制代码
::二
  1. (
  2.         reg add "HKCR\MPC-BE.3gp\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",4"
  3.         reg add "HKCR\MPC-BE.aac\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",7"
  4.         reg add "HKCR\MPC-BE.avi\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",20"
  5.         reg add "HKCR\MPC-BE.flac\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",32"
  6.         reg add "HKCR\MPC-BE.flv\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",36"
  7.         reg add "HKCR\MPC-BE.m4a\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",47"
  8.         reg add "HKCR\MPC-BE.midi\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",51"
  9.         reg add "HKCR\MPC-BE.mid\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",50"
  10.         reg add "HKCR\MPC-BE.mkv\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",53"
  11.         reg add "HKCR\MPC-BE.mp3\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",58"
  12.         reg add "HKCR\MPC-BE.mp4\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",59"
  13.         reg add "HKCR\MPC-BE.mpeg\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",64"
  14.         reg add "HKCR\MPC-BE.mov\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",55"
  15.         reg add "HKCR\MPC-BE.ts\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",95"
  16.         reg add "HKCR\MPC-BE.wav\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",98"
  17.         reg add "HKCR\MPC-BE.rm\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",81"
  18.         reg add "HKCR\MPC-BE.wmv\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",103"
  19.         reg add "HKCR\MPC-BE.rmvb\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",103"
  20.         reg add "HKCR\MPC-BE.mpg\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",65"
  21. ) >nul 2>nul
复制代码
怎么把一和二合起来,就是再添加一个变量比如%%b把二改成reg add "HKCR\MPC-BE.%%a\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",%%b"这种形式,%%b是数字,与%%a 的 (3gp aac avi flac flv m4a midi mid mkv mp3 mp4 mpeg mov ts wav rm wmv rmvb mpg)这些一一对应


最终结果,视频播放器MPC-BE的关联批处理,放在与mpciconlib.dll和MPC-BE.exe同级的路径中
  1. @echo off
  2.     fltmc >nul || mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx0","%*",,"runas",1)(window.close) && exit /b
  3.    
  4. for %%a in (3gp:4 aac:7 avi:20 flac:32 flv:36 m4a:47 midi:51 mid:50 mkv:53 mov:55 mp3:58 mp4:59 mpeg:64 mpg:65 ts:95 wav:98 wmv:103 rm:81 rmvb:81) do (
  5.         for /f "tokens=1,2 delims=:" %%x in ( "%%a" ) do (
  6.         echo %%x    %%y        
  7.         reg add "HKCR\MPC-BE.%%x\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",%%y"
  8.         reg add "HKCR\MPC-BE.%%x\Shell\Open\Command" /f /ve /t REG_SZ /d "\"%~sdp0MPC-BE.exe\" \"%%1\""
  9.         reg add "HKCR\.%%x" /f /ve /t REG_SZ /d "MPC-BE.%%x"
  10. )
  11. ) >nul 2>nul
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 5# newswan


    老哥厉害,成了

TOP

先用 echo 检查 输出

TOP

本帖最后由 newswan 于 2024-1-18 18:05 编辑

回复 4# 工具人
  1. for %%a in (3gp:4 aac:7 avi:20 flac:32 flv:36 mp4:59) do (
  2. for /f "tokens=1,2 delims=:" %%x in ( "%%a" ) do (
  3. echo %%x    %%y
  4. echo reg add "HKCR\MPC-BE.%%x\Shell\Open\Command" /f /ve /t REG_SZ /d "\"%~sdp0MPC-BE.exe\" \"%%1\""
  5. echo reg add "HKCR\.%%x" /f /ve /t REG_SZ /d "MPC-BE.%%x"
  6. echo reg add "HKCR\MPC-BE.%%x\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",%%y"
  7. )
  8. )
复制代码
1

评分人数

TOP

本帖最后由 工具人 于 2024-1-18 18:04 编辑

回复 2# newswan


for %%a in (3gp:4 aac:7 avi:20 flac:32 flv:36 mp4:59) do (
        for /f "tokens=1,2 delims=:" %%x in ( "%%a" ) do (
                echo %%x    %%y  
        )
)                          
        reg add "HKCR\MPC-BE.%%x\DefaultIcon" /f /ve /t REG_SZ /d "\"%~sdp0mpciconlib.dll\",%%y"
        reg add "HKCR\MPC-BE.%%x\Shell\Open\Command" /f /ve /t REG_SZ /d "\"%~sdp0MPC-BE.exe\" \"%%1\""
        reg add "HKCR\.%%x" /f /ve /t REG_SZ /d "MPC-BE.%%x"
) >nul 2>nul

运行后得到的注册表如下
[HKEY_CLASSES_ROOT\MPC-BE.%x]

[HKEY_CLASSES_ROOT\MPC-BE.%x\DefaultIcon]
@="\"D:\\PROGRA~1\\MPC-BE\\mpciconlib.dll\",%y"

[HKEY_CLASSES_ROOT\MPC-BE.%x\Shell]

[HKEY_CLASSES_ROOT\MPC-BE.%x\Shell\Open]

[HKEY_CLASSES_ROOT\MPC-BE.%x\Shell\Open\Command]
@="\"D:\\PROGRA~1\\MPC-BE\\MPC-BE.exe\" \"%1\""

TOP

回复 2# newswan


    %%y对应数字吗

TOP

一种办法
  1. for %%a in (3gp:4 aac:7 avi:20) do (
  2. for /f "tokens=1,2 delims=:" %%x in ( "%%a" ) do (
  3. echo %%x    %%y
  4. )
  5. )
复制代码

TOP

返回列表