中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-23 17:00
中国DOS联盟论坛 » DOS启动盘 & LOGO技术 (启动盘室) » 如何在批处理中自动识别启动盘符 查看 1,542 回复 14
楼 主 如何在批处理中自动识别启动盘符 发表于 2007-04-11 19:18 ·  中国 湖南 长沙 电信
新手上路
积分 8
发帖 3
注册 2007-04-11 18:58
19年会员
UID 84771
性别 男
状态 离线
我们在做DOS启动盘时,有时是A盘,有时是C盘.是否能做一个通用的CONFIG.SYS 和Autoexec.bat文件适用两种情况呢?即无论是C盘还是A盘启动,这两个文件不变.各位大虾,求求了
2 发表于 2007-04-11 20:29 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
是A还是C,你需要变CONFIG.SYS 和Autoexec.bat吗?
Windows 一键还原
http://www.yjhy.com
3 发表于 2007-04-12 04:24 ·  中国 北京 中移铁通
新手上路
积分 2
发帖 1
注册 2006-10-12 05:16
19年会员
UID 65426
状态 离线
偶不会 帮不了你了
4 发表于 2007-04-12 06:04 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
Autoexec.bat文件前加上:
FOR %%a IN (A: C:) DO IF EXIST SET ud=%%a
试一下吧!
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
he1yi +1 2007-04-12 06:16
5 发表于 2007-04-12 08:57 ·  中国 浙江 电信
初级用户
积分 26
发帖 13
注册 2006-08-29 23:55
19年会员
UID 61545
状态 离线
Autoexec.bat文件前加上:
FOR %%a IN (A: C:) DO IF EXIST SET ud=%%a
试一下吧!

请具体解释一下是什么意思好吗?
6 发表于 2007-04-12 09:07 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
%ud%=你的盘符 变量的
7 发表于 2007-04-12 09:07 ·  中国 湖南 长沙 电信
新手上路
积分 8
发帖 3
注册 2007-04-11 18:58
19年会员
UID 84771
性别 男
状态 离线
该命令语法不正确.不知道能否使用FOR %%a IN(A: C:) DO CD|find /C/I "A:"
当无法将find的结果返回到Autoexec.bat中
8 发表于 2007-04-12 10:15 ·  中国 黑龙江 哈尔滨 电信
高级用户
★★★
积分 760
发帖 357
注册 2005-10-10 22:33
20年会员
UID 43332
状态 离线
晕!
这么简单搞那么复杂干什么呀?
这是我的:

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 发表于 2007-04-12 10:21 ·  中国 黑龙江 哈尔滨 电信
高级用户
★★★
积分 760
发帖 357
注册 2005-10-10 22:33
20年会员
UID 43332
状态 离线
2个上随便弄的,不是对应的,CO精简了,AU没整理!
10 发表于 2007-04-12 10:22 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
23年会员
UID 7105
性别 男
状态 离线
DOS基础没打好吧?
在CONFIG.SYS和AUTOEXEC.BAT中,不写路径不就行了?
启动到什么盘符,DOS就会到这个盘符下找的,不用你费心的,这两个文件中的语句中的程序名前也不用加的(但一定要放在根目录)
11 发表于 2007-04-12 10:27 ·  中国 黑龙江 哈尔滨 电信
高级用户
★★★
积分 760
发帖 357
注册 2005-10-10 22:33
20年会员
UID 43332
状态 离线
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 发表于 2007-04-12 10:47 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
用相对路径就行了,不需盘符。
Windows 一键还原
http://www.yjhy.com
13 发表于 2007-04-12 11:02 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
23年会员
UID 7105
性别 男
状态 离线
简单一句话:
不写盘符,就行了,你是A:\SYS\....,还是 C:\SYS\....
只要写SYS\.....就行了
14 发表于 2007-04-12 11:37 ·  中国 黑龙江 哈尔滨 电信
高级用户
★★★
积分 760
发帖 357
注册 2005-10-10 22:33
20年会员
UID 43332
状态 离线
呵呵,我识别盘符是为了,随时后加驱动指定路径用的!
其实没什么大不了的,感觉驱动放到引导盘,程序放到内存盘好一些,反正也删不掉引导盘!(个人爱好)
其实不写盘符是最简单的办法了!
15 发表于 2007-04-14 06:09 ·  中国 湖南 长沙 电信
新手上路
积分 8
发帖 3
注册 2007-04-11 18:58
19年会员
UID 84771
性别 男
状态 离线
非常感谢大家,我想应该可以试试吧
论坛跳转: