中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » 帮我看看这段autoexec.bat哪里不对?
<<   [1] [2]  >>   >
作者:
标题: 帮我看看这段autoexec.bat哪里不对? 上一主题 | 下一主题
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『楼 主』:  帮我看看这段autoexec.bat哪里不对?

autoexec.bat内容(片段) @ECHO OFF FOR %%a IN (A: C:) DO IF EXIST SET ud=%%a mem /c|tfind /i "TW">nul if not errorlevel 1 goto mo lh %ud%\dos\tw /np N3 >nul :mo SET DIRCMD=/OGN /4 SET PROMPT=$P$G SET HDPMI=16384 SET RAMDRIVE=x:\ XMSDSK 20480 %RAMDRIVE% /y>NUL PATH=%RAMDRIVE%;%ud%\;%ud%\dos; COPY %ud%\dos\COMMAND.COM %RAMDRIVE%>NUL SET COMSPEC=%RAMDRIVE%COMMAND.COM MD %RAMDRIVE%TEMP SET TEMP=%RAMDRIVE%TEMP CD>%TEMP%\BOOTDRV.INI vol>%TEMP%\VOL.TXT cls call w.bat box (+white on +blue) @%ud%\dos\dos.scr:start if errorlevel 100 goto end if errorlevel 4 goto re if errorlevel 3 goto end if errorlevel 2 goto wdos menu..bat 下面是 menu.bat部分内容: IF EXIST %RAMDRIVE%dos\gho.bat goto gh IF NOT EXIST %RAMDRIVE%unzip.exe copy %ud%\dos\unzip.exe %RAMDRIVE%unzip.exe IF EXIST %ud%\dos\gho.ex_ copy %ud%\dos\gho.ex_ %RAMDRIVE%gho.zip>NUL PATH=%PATH%;%RAMDRIVE%gho\; %RAMDRIVE% cd\ unzip -d gho.zip >nul del gho.zip >nul :gh gho.bat 执行到cd\停止 此时%RAMDRIVE%里有unzip gho.zip 但就是没解压 手动解压后;原PATH无效 提示找不到文件(文件在%ud%\dos)


2007-4-20 07:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 2 楼』:  

水平有限,我也看不出问题。 没看出虚拟盘里有目录,不如直接把cd\拿掉算了。




Windows 一键还原 www.yjhy.com
2007-4-20 07:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 3 楼』:  

gho.zip解压出来就是目录


2007-4-20 08:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 4 楼』:  

问题是你的cd\是在解压前呀。




Windows 一键还原 www.yjhy.com
2007-4-20 08:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 5 楼』:  

del >nul ???这句也不对吧?




Windows 一键还原 www.yjhy.com
2007-4-20 08:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
0451lym
高级用户





积分 760
发帖 357
注册 2005-10-10
状态 离线
『第 6 楼』:  

FOR %%a IN (A: C:) DO IF EXIST SET ud=%%a 这里错了! 如果是判断引导盘符号,建议用卷标来确定,就是给你的IMG来个固定的卷标! 或者用CD>%TEMP%\BOOTDRV.INI来判断. [ Last edited by 0451lym on 2007-4-20 at 09:14 AM ]


2007-4-20 09:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 7 楼』:  

Originally posted by 0451lym at 2007-4-20 09:08: FOR %%a IN (A: C:) DO IF EXIST SET ud=%%a 这里错了! 如果是判断引导盘符号,建议用卷标来确定,就是给你的IMG来个固定的卷标! 或者用CD>%TEMP%\BOOTDRV.INI ...
像是用于u盘启动的,是的话,也可放个特征文件。 或者象一键ghost那样,启动后执行 vol >x:\vol.txt 接下来用下面这句来判断 type vol.txt|find /i "drive C"




Windows 一键还原 www.yjhy.com
2007-4-20 09:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 8 楼』:  

Originally posted by lianjiang2004 at 2007-4-20 08:57: 问题是你的cd\是在解压前呀。
cd\是回到根目录,我解压还是应该继续吧!不用CD\ 问题依旧!
Originally posted by lianjiang2004 at 2007-4-20 08:58: del >nul ???这句也不对吧?
应该是 del gho.zip
Originally posted by 0451lym at 2007-4-20 09:08: FOR %%a IN (A: C:) DO IF EXIST SET ud=%%a 这里错了! 如果是判断引导盘符号,建议用卷标来确定,就是给你的IMG来个固定的卷标! 或者用CD>%TEMP%\BOOTDRV.INI ...
现在问题是在%ud%(也就是在U盘启动目录)下时可以运用的!跳转到%RAMDRIVE%后, 原AUTOEXEC里的PATH设定都无效!我原来一直是这样用的!只是试用MINITO后,重新改了一下CONFIG.SYS一下,现在进去%RAMDRIVE%后原PATH都没用 ,回到U盘又可以用, 会不会是COMMAND的问题呢?


2007-4-20 09:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
0451lym
高级用户





积分 760
发帖 357
注册 2005-10-10
状态 离线
『第 9 楼』:  

FOR %%a IN (A: C:) DO IF EXIST SET ud=%%a 应该是这样的: FOR %%a IN (A: C:) DO IF EXIST %%a SET ud=%%a 但是这个结果永远是%UB%=="C:"


2007-4-20 10:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 10 楼』:  

Originally posted by 0451lym at 2007-4-20 10:12: FOR %%a IN (A: C:) DO IF EXIST SET ud=%%a 应该是这样的: FOR %%a IN (A: C:) DO IF EXIST %%a SET ud=%%a 但是这个结果永远是%UB%=="C:"
谢 现在的根本问题还是没解决!郁闷!我贴出CONFIG.SYS 看一下! dos=high,umb,auto device=\DOS\himem.sys /testmem:off device=\dos\UMBPCI.SYS /I=D800-EFFF device=\dos\jemm386.exe i=b000-b7ff noems SHELL=\DOS\COMMAND.COM /P /F /E:4096 FCBSHIGH=4,0 FILESHIGH=30 BUFFERSHIGH=80,0 STACKSHIGH=9,256 LASTDRIVEHIGH=Z


2007-4-20 10:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
0451lym
高级用户





积分 760
发帖 357
注册 2005-10-10
状态 离线
『第 11 楼』:  

看不出什么问题呀! 建议在进入DOS时用CTRL+F8,一步一步来看看那里出错了! 在用SET看看变量那里不对!


2007-4-20 10:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 12 楼』:  

Originally posted by 0451lym at 2007-4-20 10:23: 看不出什么问题呀! 建议在进入DOS时用CTRL+F8,一步一步来看看那里出错了! 在用SET看看变量那里不对!
DOS启动时是正常的!而且AUTOEXEC文件执行也是顺利的;包括开始PATH=%UD%也可以,否则的话,在MENU.BAT里不可能执行到CD\吧!从AUTOEXEC里执行的MENU.BAT执行到cd\停止 并提示 批处理丢失 (Batch file missing ) 如果手动解压后进入%RAMDRIVE%gho目录执行GHO.BAT的话,由于此时在先前的AUTOEXEC文件里设置的PATH=%UD%;%UD%\DOS失效 导致无法运行%RAMDRIVE%gho目录的GHO.BAT,而且会死机!!!我不知道会不会是文件方面的原因! (而且我从%RAMDRIVE%里回到%UD%时!PATH=%UD%;%UD%\DOS又生效了!) [ Last edited by terse on 2007-4-20 at 12:38 PM ]


2007-4-20 12:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
0451lym
高级用户





积分 760
发帖 357
注册 2005-10-10
状态 离线
『第 13 楼』:  

我也不知道对不对,看看是不是这句的问题导致的批处理丢失: PATH=%PATH%;%RAMDRIVE%gho\; 变量是有一定长度的!如果不是批处理语句的问题,那么就在这里考虑一下吧! [ Last edited by 0451lym on 2007-4-20 at 12:46 PM ]


2007-4-20 12:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 14 楼』:  

Originally posted by 0451lym at 2007-4-20 12:45: 我也不知道对不对,看看是不是这句的问题导致的批处理丢失: PATH=%PATH%;%RAMDRIVE%gho\; 变量是有一定长度的!如果不是批处理语句的问题,那么就在这里 ...
问题在这里: FOR %%a IN (A: C:) DO IF EXIST %%a SET ud=%%a %ud%为空 为什么呢?


2007-4-20 22:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
BWSkyer
中级用户

我是DOS学者


积分 367
发帖 180
注册 2006-5-14
来自 重庆
状态 离线
『第 15 楼』:  

A: C: 可以用if exist判斷嗎?? 應該是不可以的吧.這裡可以自己定義一個文件來判斷,如A:\test.log c:\test.log.這樣應該沒有問題...




2007-4-20 22:49
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (309843581)  编辑帖子  回复  引用回复
<<   [1] [2]  >>   >
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: