用WBAT和GET作了简易的DOS浏览器,目录和文件越深,DIR后面的数字就越大.
本着数字递增和递减的原理想了很多办法简化它,但由于DOS不能嵌套变量,
(就是不能引用%%1%,%%变量%%), 所以绞尽脑汁还是不行..
谁能有办法?
.....
批处理如下:
@echo off
goto begin
:dirbars "上一级—→"
:
:filebars " 上一级—→"
:
:begin
if exist drive.txt copy drive.txt dir0.txt
if exist dir0.txt goto dir0
wbat box "没有驱动器!" 退出
goto end
:dir0
call w.bat list dir0.txt
if errorlevel 100 goto end
:putdisk
if not exist notready.txt goto dirbar1
find /i "%wbat%" notready.txt
if errorlevel 1 goto dirbar1
wbat box "您还没有在%wbat%盘放入盘片!" 重试
call diskfind
goto putdisk
:dirbar1
set dir1=%wbat%
:dirbars1
wbat box @%0:dirbars
if errorlevel 100 goto dir0
if errorlevel 4 goto dir1
if errorlevel 3 goto flist1
if errorlevel 2 goto pikdir1
goto end
:dir1
dir "%dir1%\" /b/ad/one>dir1.txt
get f dir1.txt
if not "%get%"=="0" goto dir1y
wbat box "没有子目录!" 上一级,退出
if errorlevel 2 goto end
goto dirbars1
:dir1y
call w.bat list dir1.txt
if errorlevel 100 goto dirbars1
set dir2=%dir1%\%wbat%
:dirbars2
wbat box @%0:dirbars
if errorlevel 100 goto dir1y
if errorlevel 4 goto dir2
if errorlevel 3 goto flist2
if errorlevel 2 goto pikdir2
goto end
:flist1
dir "%dir1%" /b/a-d/one>flist1.txt
get f flist1.txt
if not "%get%"=="0" goto flist1y
wbat box "没有文件!" 上一级,退出
if errorlevel 2 goto end
goto dirbars1
:flist1y
call w.bat list flist1.txt
if errorlevel 100 goto dirbars1
:fbars1
wbat box @%0:filebars
if errorlevel 100 goto flist1y
if errorlevel 5 goto info1
if errorlevel 4 goto text1
if errorlevel 3 goto exec1
if errorlevel 2 goto bat1
goto end
:info1
dir "%dir1%\%wbat%" /a>info1.txt
wbat list info1.txt
goto fbars1
:text1
edit "%dir1%\%wbat%"
goto fbars1
:exec1
"%dir1%\%wbat%"
goto fbars1
:bat1
call "%dir1%\%wbat%"
goto fbars1
:pikdir1
set gamesave=%dir1%
goto end
:dir2
dir "%dir2%" /b/ad/one>dir2.txt
get f dir2.txt
if not "%get%"=="0" goto dir2y
wbat box "没有子目录!" 上一级,退出
if errorlevel 2 goto end
goto dirbars2
:dir2y
call w.bat list dir2.txt
if errorlevel 100 goto dirbars2
set dir3=%dir2%\%wbat%
:dirbars3
wbat box @%0:dirbars
if errorlevel 100 goto dir2y
if errorlevel 4 goto dir3
if errorlevel 3 goto flist3
if errorlevel 2 goto pikdir3
goto end
:flist2
dir "%dir2%" /b/a-d/one>flist2.txt
get f flist2.txt
if not "%get%"=="0" goto flist2y
wbat box "没有文件!" 上一级,退出
if errorlevel 2 goto end
goto dirbars2
:flist2y
call w.bat list flist2.txt
if errorlevel 100 goto dirbars2
:fbars2
wbat box @%0:filebars
if errorlevel 100 goto flist2y
if errorlevel 5 goto info2
if errorlevel 4 goto text2
if errorlevel 3 goto exec2
if errorlevel 2 goto bat2
goto end
:info2
dir "%dir2%\%wbat%" /a>info2.txt
wbat list info2.txt
goto fbars2
:text2
edit "%dir2%\%wbat%"
goto fbars2
:exec2
"%dir2%\%wbat%"
goto fbars2
:bat2
call "%dir2%\%wbat%"
goto fbars2
:pikdir2
set gamesave=%dir2%
goto end
:dir3
dir "%dir3%" /b/ad/one>dir3.txt
get f dir3.txt
if not "%get%"=="0" goto dir3y
wbat box "没有子目录!" 上一级,退出
if errorlevel 2 goto end
goto dirbars3
:dir3y
call w.bat list dir3.txt
if errorlevel 100 goto dirbars3
set dir4=%dir3%\%wbat%
:dirbars4
wbat box @%0:dirbars
if errorlevel 100 goto dir3y
if errorlevel 4 goto dir4
if errorlevel 3 goto flist4
if errorlevel 2 goto pikdir4
goto end
:flist3
dir "%dir3%" /b/a-d/one>flist3.txt
get f flist3.txt
if not "%get%"=="0" goto flist3y
wbat box "没有文件!" 上一级,退出
if errorlevel 2 goto end
goto dirbars3
:flist3y
call w.bat list flist3.txt
if errorlevel 100 goto dirbars3
:fbars3
wbat box @%0:filebars
if errorlevel 100 goto flist3y
if errorlevel 5 goto info3
if errorlevel 4 goto text3
if errorlevel 3 goto exec3
if errorlevel 2 goto bat3
goto end
:info3
dir "%dir3%\%wbat%" /a>info3.txt
wbat list info3.txt
goto fbars3
:text3
edit "%dir3%\%wbat%"
goto fbars3
:exec3
"%dir3%\%wbat%"
goto fbars3
:bat3
call "%dir3%\%wbat%"
goto fbars3
:pikdir3
set gamesave=%dir3%
goto end
...
...
:end