中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-10-26 20:24
共 47,815 主题排行 / 349,928 发帖 / 今日 0 篇 / 48,288 会员排行
DOS启动盘 & LOGO技术 (启动盘室) » 如何在批处理中自动识别启动盘符
可打印版本  1,681 / 14
第1楼 he1yi 发表于 2007-04-11 19:18
新手上路 发帖 3 积分 8
如何在批处理中自动识别启动盘符
我们在做DOS启动盘时,有时是A盘,有时是C盘.是否能做一个通用的CONFIG.SYS 和Autoexec.bat文件适用两种情况呢?即无论是C盘还是A盘启动,这两个文件不变.各位大虾,求求了
第2楼 lianjiang2004 发表于 2007-04-11 20:29
金牌会员 发帖 1,884 积分 3,946
是A还是C,你需要变CONFIG.SYS 和Autoexec.bat吗?
第3楼 djlxue 发表于 2007-04-12 04:24
新手上路 发帖 1 积分 2
偶不会 帮不了你了
第4楼 terse 发表于 2007-04-12 06:04
银牌会员 发帖 946 积分 2,404
Autoexec.bat文件前加上:
FOR %%a IN (A: C:) DO IF EXIST SET ud=%%a
试一下吧!
第5楼 sunreak2008 发表于 2007-04-12 08:57
初级用户 发帖 13 积分 26
Autoexec.bat文件前加上:
FOR %%a IN (A: C:) DO IF EXIST SET ud=%%a
试一下吧!

请具体解释一下是什么意思好吗?
第6楼 terse 发表于 2007-04-12 09:07
银牌会员 发帖 946 积分 2,404
%ud%=你的盘符 变量的
第7楼 he1yi 发表于 2007-04-12 09:07
新手上路 发帖 3 积分 8
该命令语法不正确.不知道能否使用FOR %%a IN(A: C:) DO CD|find /C/I "A:"
当无法将find的结果返回到Autoexec.bat中
第8楼 0451lym 发表于 2007-04-12 10:15
高级用户 发帖 357 积分 760
晕!
这么简单搞那么复杂干什么呀?
这是我的:

DOS=HIGH,UMB,AUTO
NUMLOCK=ON
device=\SYS\config.exe
device=\SYS\ConfigP.Mnu
; block=0
DEVICE=\SYS\MEM\HIMEM.SYS /TESTMEM:OFF
; block=1
DEVICE=\SYS\MEM\EMM386.exe noems
DEVICEHIGH=\SYS\MEM\QSCACHE.SYS /F /S7
; block=2
DEVICE=\SYS\MEM\UMBPCI.SYS /S
DEVICEHIGH=\SYS\MEM\QCACHE.SYS /L /S5
; block=3
DEVICE=\SYS\CD\GCDROM.SYS /D:SATA-CD
; block=4
DEVICE=\SYS\CD\vide-cdd.sys /d:PATA-CD
; block=5
DEVICE=\SYS\CD\QCDROM.sys /d:PATA-CD
; block=6
DEVICE=\SYS\USB\usbaspi.sys
; block=7
DEVICE=\SYS\USB\di1000dd.sys
; block=8
DEVICE=\SYS\USB\ASPIDISK.SYS
; block=9
DEVICE=\SYS\USB\USBCD.sys /d:USB-CD
; block=10
DEVICE=\SYS\USB\NJUSBCDA.sys /D:USB-CD
; block=11
DEVICE=\SYS\USB\UHCI.EXE
; block=12
DEVICE=\SYS\USB\OHCI.EXE
; block=end

FILESHIGH=100
BUFFERSHIGH=30,0
SHELL=COMMAND.COM /P /F /E:4096
FCBSHIGH=8,0
STACKSHIGH=18,512
LASTDRIVEHIGH=Z


AUTOEXEC:
@ECHO OFF
cls
rem pictview logo.sys --q --nocls
DEL logo.sys
SET DIRCMD=/OGN /4
SET PROMPT=$d $t$_$p$g
SET HDPMI=16384>NUL
SET RAMDRIVE=v:>NUL
XMSDSK 12288 %RAMDRIVE% /T /Y>NUL
PATH=%RAMDRIVE%;%RAMDRIVE%\BAT;%RAMDRIVE%\UCDOS;
COPY COMMAND.COM %RAMDRIVE%>NUL
SET COMSPEC=%RAMDRIVE%\COMMAND.COM
SET TEMP=%RAMDRIVE%\TEMP
IF EXIST LYM. REN LYM LYM.EXE
IF EXIST LYM.EXE LYM /Y %RAMDRIVE%\>NUL
IF EXIST GHOST.EXE COPY GHOST.EXE %RAMDRIVE%>NUL
FOR %%X IN (LYM.EXE GHOST.EXE) DO IF EXIST %%X DEL %%X
echo 引导盘符>%temp%\YD.INI
cd>>%temp%\YD.INI
strings YD=read %temp%\YD.INI,2
strings YD=filedrive %YD%

PATH=%PATH%%YD%;
echo 内存盘符>%temp%\RAM.INI
echo %RAMDRIVE%>>%temp%\RAM.INI
CALL Drive.bat IFS %D3% %D4% %D5% %D6% %D7% %D8% %D9% %D10% %D11% %D12%
go %RAMDRIVE%\

CALL HZ.BAT

:TC

[ Last edited by 0451lym on 2007-4-12 at 10:19 AM ]
第9楼 0451lym 发表于 2007-04-12 10:21
高级用户 发帖 357 积分 760
2个上随便弄的,不是对应的,CO精简了,AU没整理!
第10楼 GOTOmsdos 发表于 2007-04-12 10:22
铂金会员 发帖 1,827 积分 5,154
DOS基础没打好吧?
在CONFIG.SYS和AUTOEXEC.BAT中,不写路径不就行了?
启动到什么盘符,DOS就会到这个盘符下找的,不用你费心的,这两个文件中的语句中的程序名前也不用加的(但一定要放在根目录)
第11楼 0451lym 发表于 2007-04-12 10:27
高级用户 发帖 357 积分 760
Originally posted by GOTOmsdos at 2007-4-12 10:22:
DOS基础没打好吧?
在CONFIG.SYS和AUTOEXEC.BAT中,不写路径不就行了?
启动到什么盘符,DOS就会到这个盘符下找的,不用你费心的,这两个文件中的语句中的程序名前也不用加的(但一定要放在根目录)


呵呵,我的驱动什么的都放在A:\SYS里边了,所以需要读出A:来,不知道楼主是不是也是这个问题!

cd>>YD.INI
TYPE YD.INI|FIND /I "A:">NUL
if errorlevel 1 SET YD=C:
if NOT errorlevel 1 SET YD=A:

理论是可行的,没测试!

[ Last edited by 0451lym on 2007-4-12 at 10:33 AM ]
第12楼 lianjiang2004 发表于 2007-04-12 10:47
金牌会员 发帖 1,884 积分 3,946
用相对路径就行了,不需盘符。
第13楼 GOTOmsdos 发表于 2007-04-12 11:02
铂金会员 发帖 1,827 积分 5,154
简单一句话:
不写盘符,就行了,你是A:\SYS\....,还是 C:\SYS\....
只要写SYS\.....就行了
第14楼 0451lym 发表于 2007-04-12 11:37
高级用户 发帖 357 积分 760
呵呵,我识别盘符是为了,随时后加驱动指定路径用的!
其实没什么大不了的,感觉驱动放到引导盘,程序放到内存盘好一些,反正也删不掉引导盘!(个人爱好)
其实不写盘符是最简单的办法了!
第15楼 he1yi 发表于 2007-04-14 06:09
新手上路 发帖 3 积分 8
非常感谢大家,我想应该可以试试吧
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023