|
he1yi
新手上路
积分 8
发帖 3
注册 2007-4-11
状态 离线
|
『楼 主』:
如何在批处理中自动识别启动盘符
我们在做DOS启动盘时,有时是A盘,有时是C盘.是否能做一个通用的CONFIG.SYS 和Autoexec.bat文件适用两种情况呢?即无论是C盘还是A盘启动,这两个文件不变.各位大虾,求求了
|
|
2007-4-11 19:18 |
|
|
lianjiang2004
金牌会员
积分 3946
发帖 1884
注册 2006-1-20
状态 离线
|
|
2007-4-11 20:29 |
|
|
djlxue
新手上路
积分 2
发帖 1
注册 2006-10-12
状态 离线
|
|
2007-4-12 04:24 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
4 楼』:
Autoexec.bat文件前加上:
FOR %%a IN (A: C:) DO IF EXIST SET ud=%%a
试一下吧!
此帖被 +1 点积分 点击查看详情 评分人:【 he1yi 】 | 分数: +1 | 时间:2007-4-12 06:16 |
|
|
|
2007-4-12 06:04 |
|
|
sunreak2008
初级用户
积分 26
发帖 13
注册 2006-8-29
状态 离线
|
『第
5 楼』:
Autoexec.bat文件前加上:
FOR %%a IN (A: C:) DO IF EXIST SET ud=%%a
试一下吧!
请具体解释一下是什么意思好吗?
|
|
2007-4-12 08:57 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
|
2007-4-12 09:07 |
|
|
he1yi
新手上路
积分 8
发帖 3
注册 2007-4-11
状态 离线
|
『第
7 楼』:
该命令语法不正确.不知道能否使用FOR %%a IN(A: C:) DO CD|find /C/I "A:"
当无法将find的结果返回到Autoexec.bat中
|
|
2007-4-12 09:07 |
|
|
0451lym
高级用户
积分 760
发帖 357
注册 2005-10-10
状态 离线
|
『第
8 楼』:
晕!
这么简单搞那么复杂干什么呀?
这是我的:
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 ]
|
|
2007-4-12 10:15 |
|
|
0451lym
高级用户
积分 760
发帖 357
注册 2005-10-10
状态 离线
|
『第
9 楼』:
2个上随便弄的,不是对应的,CO精简了,AU没整理!
|
|
2007-4-12 10:21 |
|
|
GOTOmsdos
铂金会员
C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『第
10 楼』:
DOS基础没打好吧?
在CONFIG.SYS和AUTOEXEC.BAT中,不写路径不就行了?
启动到什么盘符,DOS就会到这个盘符下找的,不用你费心的,这两个文件中的语句中的程序名前也不用加的(但一定要放在根目录)
|
|
2007-4-12 10:22 |
|
|
0451lym
高级用户
积分 760
发帖 357
注册 2005-10-10
状态 离线
|
『第
11 楼』:
Quote: | 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 ]
|
|
2007-4-12 10:27 |
|
|
lianjiang2004
金牌会员
积分 3946
发帖 1884
注册 2006-1-20
状态 离线
|
|
2007-4-12 10:47 |
|
|
GOTOmsdos
铂金会员
C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『第
13 楼』:
简单一句话:
不写盘符,就行了,你是A:\SYS\....,还是 C:\SYS\....
只要写SYS\.....就行了
|
|
2007-4-12 11:02 |
|
|
0451lym
高级用户
积分 760
发帖 357
注册 2005-10-10
状态 离线
|
『第
14 楼』:
呵呵,我识别盘符是为了,随时后加驱动指定路径用的!
其实没什么大不了的,感觉驱动放到引导盘,程序放到内存盘好一些,反正也删不掉引导盘!(个人爱好)
其实不写盘符是最简单的办法了!
|
|
2007-4-12 11:37 |
|
|
he1yi
新手上路
积分 8
发帖 3
注册 2007-4-11
状态 离线
|
『第
15 楼』:
非常感谢大家,我想应该可以试试吧
|
|
2007-4-14 06:09 |
|