找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22731|回复: 6

[系统相关] [已解决]请问这个批处理还能精简下吗

[复制链接]
发表于 2020-7-2 09:38:18 | 显示全部楼层 |阅读模式
本帖最后由 kli2018 于 2020-7-2 13:28 编辑

如题
  1. @echo off
  2. PUSHD %~dp0

  3. echo.
  4. echo 1.为常用图片格式文件添加右键打开
  5. echo.
  6. echo 2.删除
  7. echo.
  8. set /p file=请选择?(1/2):
  9. if "%file%"=="1" goto ql1
  10. if "%file%"=="2" goto ql2

  11. :ql1
  12. for /f "tokens=2 delims==" %%a in ('assoc .bmp') do set "pictype=%%a"
  13. call :addright
  14. for /f "tokens=2 delims==" %%a in ('assoc .gif') do set "pictype=%%a"
  15. call :addright
  16. for /f "tokens=2 delims==" %%a in ('assoc .ico') do set "pictype=%%a"
  17. call :addright
  18. for /f "tokens=2 delims==" %%a in ('assoc .jpg') do set "pictype=%%a"
  19. call :addright
  20. for /f "tokens=2 delims==" %%a in ('assoc .jpe') do set "pictype=%%a"
  21. call :addright
  22. for /f "tokens=2 delims==" %%a in ('assoc .jpeg') do set "pictype=%%a"
  23. call :addright
  24. for /f "tokens=2 delims==" %%a in ('assoc .png') do set "pictype=%%a"
  25. call :addright
  26. goto :EOF

  27. :ql2
  28. for /f "tokens=2 delims==" %%a in ('assoc .bmp') do set "pictype1=%%a"
  29. call :deleteright
  30. for /f "tokens=2 delims==" %%a in ('assoc .gif') do set "pictype1=%%a"
  31. call :deleteright
  32. for /f "tokens=2 delims==" %%a in ('assoc .ico') do set "pictype1=%%a"
  33. call :deleteright
  34. for /f "tokens=2 delims==" %%a in ('assoc .jpg') do set "pictype1=%%a"
  35. call :deleteright
  36. for /f "tokens=2 delims==" %%a in ('assoc .jpe') do set "pictype1=%%a"
  37. call :deleteright
  38. for /f "tokens=2 delims==" %%a in ('assoc .jpeg') do set "pictype1=%%a"
  39. call :deleteright
  40. for /f "tokens=2 delims==" %%a in ('assoc .png') do set "pictype1=%%a"
  41. call :deleteright
  42. goto :EOF

  43. :addright
  44. Reg.exe add "HKLM\SOFTWARE\Classes\%pictype%\shell\open1" /v "Icon" /t REG_SZ /d "%CD%\FSViewer.exe,0" /f
  45. Reg.exe add "HKLM\SOFTWARE\Classes\%pictype%\shell\open1" /ve /t REG_SZ /d "FSViewer" /f
  46. Reg.exe add "HKLM\SOFTWARE\Classes\%pictype%\shell\open1\command" /ve /t REG_SZ /d ""%CD%\FSViewer.exe" "%%1"" /f
  47. goto :EOF

  48. :deleteright
  49. Reg.exe delete "HKLM\SOFTWARE\Classes\%pictype1%\shell\open1" /f
  50. goto :EOF
复制代码
发表于 2020-7-2 12:07:21 | 显示全部楼层
  1. @echo off
  2. PUSHD %~dp0

  3. echo.
  4. echo 1.为常用图片格式文件添加右键打开
  5. echo.
  6. echo 2.删除
  7. echo.
  8. set /p file=请选择?(1/2):
  9. set "ext=.bmp .gif .ico .jpg .jpe .jpeg .png"
  10. if "%file%"=="1" for /f "tokens=2 delims==" %%a in ('assoc ^| findstr "%ext%"') do call :addright "%%a"
  11. if "%file%"=="2" for /f "tokens=2 delims==" %%a in ('assoc ^| findstr "%ext%"') do call :deleteright "%%a"
  12. pause&exit

  13. :addright
  14. Reg.exe add "HKLM\SOFTWARE\Classes\%~1\shell\open1" /v "Icon" /t REG_SZ /d "%CD%\FSViewer.exe,0" /f
  15. Reg.exe add "HKLM\SOFTWARE\Classes\%~1\shell\open1" /ve /t REG_SZ /d "FSViewer" /f
  16. Reg.exe add "HKLM\SOFTWARE\Classes\%~1\shell\open1\command" /ve /t REG_SZ /d ""%CD%\FSViewer.exe" "%%1"" /f
  17. goto :EOF
  18. :deleteright
  19. Reg.exe delete "HKLM\SOFTWARE\Classes\%~1\shell\open1" /f
  20. goto :EOF
复制代码
 楼主| 发表于 2020-7-2 13:28:08 | 显示全部楼层
本帖最后由 kli2018 于 2020-7-2 13:54 编辑

回复 2# went

谢谢

同时再问个问题
为什么我只是

set "ext=.doc .docx"

但是最后.mydocs这个的下面也添加了啊?
发表于 2020-7-2 14:15:25 | 显示全部楼层
本帖最后由 smss 于 2020-7-2 14:36 编辑
  1. @Echo off
  2. :X
  3. cls&echo 1.添加图片格式关联  2.删除图片格式关联&choice /C:12 /N /M ">>输入选择:
  4. for /f "tokens=2 delims==" %%i in ('assoc ^|findstr ".bmp .gif .ico .jpg .jpe .jpeg .png"') do call :%errorlevel% "%%i"
  5. ping 0 -n "2">nul&goto :X
  6. :1
  7. reg add "HKLM\SOFTWARE\Classes\%~1\shell\open1" /v "Icon" /t REG_SZ /d "%CD%\FSViewer.exe,0" /f
  8. reg add "HKLM\SOFTWARE\Classes\%~1\shell\open1" /ve /t REG_SZ /d "FSViewer" /f
  9. reg add "HKLM\SOFTWARE\Classes\%~1\shell\open1\command" /ve /t REG_SZ /d ""%CD%\FSViewer.exe" "%%1"" /f
  10. goto :EOF
  11. :2
  12. reg delete "HKLM\SOFTWARE\Classes\%~1\shell\open1" /f
  13. goto :EOF
复制代码
发表于 2020-7-2 14:17:10 | 显示全部楼层
回复 3# kli2018
改成这样
  1. findstr /b "%ext%"
复制代码
更加准确就
  1. findstr /b "%ext: == %"
复制代码
 楼主| 发表于 2020-7-2 15:35:22 | 显示全部楼层
回复 4# smss

谢谢
 楼主| 发表于 2020-7-2 15:35:57 | 显示全部楼层
回复 5# went

谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 00:54 , Processed in 0.018851 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表