:Pre
setlocal enabledelayedexpansion
if "%1" equ "" goto NormalMode
if "%1" neq "" if exist %dp1%menu.lst (if exist %dp1%grldr (if exist %dp1%grldr.mbr goto SPMode2))
goto SPMode1
REM 普通模式
:NormalMode
for %%i in (C:,D:,E:,F:,G:,H:,I:,J:,K:,L:,M:,N:,O:,P:,Q:,R:,S:,T:,U:,V:,W:,X:,Y:,Z:,A:,B:) do (if exist %%i\menu.lst (if exist %%i\grldr (if exist %%i\grldr.mbr set p=%%i& set g4d=\grldr.mbr& goto Ready)))
goto Ready
pause
REM 特殊模式1(执行出错拖拽到窗口)
:SPMode1
cls
echo 文件不全,请确保三个文件在同一根目录下.
echo 所需要三个文件为menu.lst grldr grldr.mbr
echo
echo
echo [若不在根目录,可拖拽三个文件其中之一到批处理文件上方.]
echo [或者拖拽三个文件其中之一到当前窗口(三个文件务必在同一文件夹)]
set /p file=
goto Pre
REM 特殊模式2(拖拽到文件上方执行)
:SPMode2
echo %~dp1>%temp%\g4dSpecialMode.txt
for /f "tokens=2 delims=:" %%a in (%temp%\g4dSpecialMode.txt) do (set p=%~d1& set g4d=%%agrldr.mbr)