Skip to content

Instantly share code, notes, and snippets.

@muink
Last active April 19, 2020 11:39
Show Gist options
  • Save muink/4934c624d6992824f667677c6de56117 to your computer and use it in GitHub Desktop.
Save muink/4934c624d6992824f667677c6de56117 to your computer and use it in GitHub Desktop.
U+B+隐藏区挂载工具
:: U+B+隐藏区挂载工具
:: 用于挂载UtlraISO/BOOTICE隐藏分区
:: Author: muink
@echo off
%~1 mshta vbscript:createobject("shell.application").shellexecute("%~f0","::","","runas",1)(window.close)&exit
color 3b
title U+B+隐藏区挂载工具
:check
bootpart -help>nul 2>nul
if "%errorlevel%" == "9009" call:[CheckPath]
:init
bootpart -eject
call:[GetLetter] frelter
:menu
cls
echo.
echo.
echo. 建议安装 UtlraISO 9.6 以上版本
echo.
echo. 空闲盘符 [ %frelter% ]
echo.
echo.
echo.
echo. [e] 刷新页面
echo.%frelter%|findstr /i ".*[a-z,A-Z].*">nul&&(
if not defined atidrv (
echo. [r] 只读挂载隐藏区
echo. [w] 读写挂载隐藏区
)
if defined atidrv (
echo. [o] 打开隐藏区
echo. [u] 卸载隐藏区
)
)||echo.&&echo. [?] 没有空闲盘符?
echo.
echo.
set choose=
set /p choose=选择:
if "%choose%"=="e" goto :case_%choose%
echo.%frelter%|findstr /i ".*[a-z,A-Z].*">nul&&(
if not defined atidrv (
if "%choose%"=="r" goto :case_%choose%
if "%choose%"=="w" goto :case_%choose%
)
if defined atidrv (
if "%choose%"=="o" goto :case_%choose%
if "%choose%"=="u" goto :case_%choose%
)
)
goto :menu
:case_e
cls
call:[GetLetter] frelter
goto :menu
:case_o
cls
start "" "%atidrv%:"
goto :menu
:case_r
cls
bootpart -eject
call:[AssignLetter]
bootpart -mount -readonly -driveletter %atidrv%:||echo.挂载失败..&&set atidrv=
ping -n 5 127.0.0.1>nul
call:[GetLetter] frelter
goto :menu
:case_w
cls
bootpart -eject
call:[AssignLetter]
bootpart -mount -driveletter %atidrv%:||echo.挂载失败..&&set atidrv=
ping -n 5 127.0.0.1>nul
call:[GetLetter] frelter
goto :menu
:case_u
cls
bootpart -eject
set atidrv=
call:[GetLetter] frelter
goto :menu
:[CheckPath]
cls
echo.
echo.
echo. 未配置环境变量
echo. 建议安装 UtlraISO 9.6 以上版本
echo.
echo. 如果已安装请在此输入UtlraISO安装路径
echo. 例如 C:\Program Files (x86)\UltraISO
echo.
echo.
set UPath=C:\Program Files (x86)\UltraISO
set /p UPath=在此输入:
for /f "delims=" %%i in ("%UPath%") do (
if not exist "%%~i\drivers\bootpart.exe" (
echo.&echo.路径无效...
ping -n 3 127.0.0.1>nul
goto %~0
) else wmic ENVIRONMENT where "name='path' and username='<system>'" set VariableValue="%path%;%%~i\drivers\" >nul 2>nul
)
cls
echo.
echo.
echo. 已配置环境变量
echo. 您现在需要重启电脑后再次开启本程序
echo.
echo.
pause
exit
:: =============The following code is based on Graphics-Driver-Auto-Installer=============
:[GetLetter]
:: Get letter
for /f "tokens=1* delims=: " %%i in ('fsutil fsinfo drives') do set "acti=%%j"
set freeletter=C D E F G H I J K L M N O P Q R S T U V W X Y Z
setlocal enabledelayedexpansion
:[GetLetter]loop
for /f "tokens=1* delims=:\ " %%i in ("%acti%") do (
if defined freeletter set "freeletter=!freeletter:%%i=!"&set "freeletter=!freeletter: = !"
set "acti=%%j"
goto %~0loop
)
:: Clear space
for /f "tokens=* delims= " %%i in ("%freeletter%") do set "freeletter=%%i"
if not defined freeletter set "freeletter=Nix"
if "%freeletter:~-1%" == " " set "freeletter=%freeletter:~0,-1%"
for /f "delims=" %%i in ("%freeletter%") do endlocal&set "%~1=%%i"
goto :eof
:: =======================================================================================
:[AssignLetter]
for /f "tokens=1 delims= " %%i in ("%frelter%") do set "atidrv=%%~i"
goto :eof
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment