Board logo

标题: [注册表类] [已解决]用批处理批量添加注册表有多个变量怎么弄 [打印本页]

作者: 工具人    时间: 2024-1-18 16:53     标题: [已解决]用批处理批量添加注册表有多个变量怎么弄

::一
  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
复制代码

作者: newswan    时间: 2024-1-18 17:35

一种办法
  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. )
复制代码

作者: 工具人    时间: 2024-1-18 17:43

回复 2# newswan


    %%y对应数字吗
作者: 工具人    时间: 2024-1-18 17:51

本帖最后由 工具人 于 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\""
作者: newswan    时间: 2024-1-18 18:04

本帖最后由 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. )
复制代码

作者: newswan    时间: 2024-1-18 18:07

先用 echo 检查 输出
作者: 工具人    时间: 2024-1-18 18:07

回复 5# newswan


    老哥厉害,成了




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2