[关闭]
@cyysu 2017-10-12T10:21:59.000000Z 字数 2734 阅读 852

Bat-实战基础篇(十)

  • 时间:2017年10月11日
  • 作者:Kali
  • 邮箱:cyysu.github.io@gmail.com/2869905223@qq.com/微信lwyx1413
  • 版本:4.0
  • 描述:批处理实战基础篇十,本次主要给出几个栗子。

Bat系列教程


MPV播放器卸载

  1. @echo off
  2. setlocal enableextensions enabledelayedexpansion
  3. path %SystemRoot%\System32;%SystemRoot%;%SystemRoot%\System32\Wbem
  4. :: Unattended install flag. When set, the script will not require user input.
  5. set unattended=no
  6. if "%1"=="/u" set unattended=yes
  7. :: Make sure the script is running as admin
  8. call :ensure_admin
  9. :: Delete "App Paths" entry
  10. reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\mpv.exe" /f >nul
  11. :: Delete HKCR subkeys
  12. set classes_root_key=HKLM\SOFTWARE\Classes
  13. reg delete "%classes_root_key%\Applications\mpv.exe" /f >nul
  14. reg delete "%classes_root_key%\SystemFileAssociations\video\OpenWithList\mpv.exe" /f >nul
  15. reg delete "%classes_root_key%\SystemFileAssociations\audio\OpenWithList\mpv.exe" /f >nul
  16. :: Delete AutoPlay handlers
  17. set autoplay_key=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers
  18. reg delete "%autoplay_key%\Handlers\MpvPlayDVDMovieOnArrival" /f >nul
  19. reg delete "%autoplay_key%\EventHandlers\PlayDVDMovieOnArrival" /v "MpvPlayDVDMovieOnArrival" /f >nul
  20. reg delete "%autoplay_key%\Handlers\MpvPlayBluRayOnArrival" /f >nul
  21. reg delete "%autoplay_key%\EventHandlers\PlayBluRayOnArrival" /v "MpvPlayBluRayOnArrival" /f >nul
  22. :: Delete "Default Programs" entry
  23. reg delete "HKLM\SOFTWARE\RegisteredApplications" /v "mpv" /f >nul
  24. reg delete "HKLM\SOFTWARE\Clients\Media\mpv\Capabilities" /f >nul
  25. :: Delete all OpenWithProgIds referencing ProgIds that start with io.mpv.
  26. for /f "usebackq eol= delims=" %%k in (`reg query "%classes_root_key%" /f "io.mpv.*" /s /v /c`) do (
  27. set "key=%%k"
  28. echo !key!| findstr /r /i "^HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\\.[^\\][^\\]*\\OpenWithProgIds$" >nul
  29. if not errorlevel 1 (
  30. for /f "usebackq eol= tokens=1" %%v in (`reg query "!key!" /f "io.mpv.*" /v /c`) do (
  31. set "value=%%v"
  32. echo !value!| findstr /r /i "^io\.mpv\.[^\\][^\\]*$" >nul
  33. if not errorlevel 1 (
  34. echo Deleting !key!\!value!
  35. reg delete "!key!" /v "!value!" /f >nul
  36. )
  37. )
  38. )
  39. )
  40. :: Delete all ProgIds starting with io.mpv.
  41. for /f "usebackq eol= delims=" %%k in (`reg query "%classes_root_key%" /f "io.mpv.*" /k /c`) do (
  42. set "key=%%k"
  43. :: 这里用到管道操作 findstr /r 表示将搜索字符串作为一般表达式 -i 表示搜索不区分大小写
  44. echo !key! | findstr /r /i "^HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\io\.mpv\.[^\\][^\\]*$" >nul
  45. if not errorlevel 1 (
  46. echo Deleting !key!
  47. reg delete "!key!" /f >nul
  48. )
  49. )
  50. echo Uninstalled successfully
  51. if [%unattended%] == [yes] exit 0
  52. pause
  53. exit 0
  54. :die
  55. if not [%1] == [] echo %~1
  56. if [%unattended%] == [yes] exit 1
  57. pause
  58. exit 1
  59. :ensure_admin
  60. :: 'openfiles' is just a commmand that is present on all supported Windows
  61. :: versions, requires admin privileges and has no side effects, see:
  62. :: https://stackoverflow.com/questions/4051883/batch-script-how-to-check-for-admin-rights
  63. openfiles >nul 2>&1
  64. if errorlevel 1 (
  65. echo This batch script requires administrator privileges. Right-click on
  66. echo mpv-uninstall.bat and select "Run as administrator".
  67. call :die
  68. )
  69. goto :EOF

打赏

                    支付宝                                                         微信

微信与支付宝支付

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注