中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-02 06:18
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » ghost的autoexec.batw问题.请教 查看 959 回复 10
楼 主 ghost的autoexec.batw问题.请教 发表于 2008-02-28 22:05 ·  中国 福建 龙岩 移动
初级用户
积分 87
发帖 32
注册 2007-11-21 23:46
18年会员
UID 103375
性别 男
状态 离线
@ECHO OFF
IF %CONFIG%#==M4# GOTO END
SET SM=
XMSDSK 4096 /Y
ECHO Now setting up the RAM disk...
FINDRAMD>NUL
IF %RAMDRIVE%#==# GOTO NORAM
IF NOT EXIST %RAMDRIVE%\TEMP\NUL MD %RAMDRIVE%\TEMP
SET TMP=%RAMDRIVE%\TEMP
SET TEMP=%RAMDRIVE%\TEMP
IF NOT EXIST %RAMDRIVE%\SYSTEM\NUL MD %RAMDRIVE%\SYSTEM
COPY COMMAND.COM %RAMDRIVE%\SYSTEM>NUL
IF NOT EXIST %RAMDRIVE%\SYSTEM\COMMAND.COM ECHO Warning: Failed to copy files!
IF NOT EXIST %RAMDRIVE%\SYSTEM\COMMAND.COM GOTO COPYERR
SET COMSPEC=%RAMDRIVE%\SYSTEM\COMMAND.COM
:COPYERR
PATH=%RAMDRIVE%;%RAMDRIVE%\SYSTEM
IF %SM%#==Y# LH SMARTDRV 4096 2048 /X
GOTO NEXT
:NORAM
ECHO Warning: Can't create RAM disk!
IF %SM%#==Y# ECHO Can't load SMARTDRV!
SET COMSPEC=A:\COMMAND.COM
:NEXT
SET SM=
SET PROMPT=$P$G
PATH=A:\;C:\;%CDROM%:\;..
LFNFOR ON
SET DIRCMD=/4
SET HDPMI=16384
LH KILLER
LH DOSKEY
LH CTMOUSE
LH doslfn /C- /Z:A:\CP936UNI.TBL
LH HDPMI32
LH NTFSPRO
LH MOUSCLIP /M
LH SHSUCDX /D:IDE-CD /D:SATA-CD /Q /~+
LH FINDCD /S
IF %CONFIG%#==M1# GOTO GHOST
IF NOT %CONFIG%#==M1# GOTO END1
:GHOST
CALL FINDCDR "GHOST.EXE" C D E F G H I J K L M N O P Q R S T U V W X Y Z
SET DRIVE=Z Y X W V U T S R Q P O N M L K J I H G F E D C
FOR %%I IN (%DRIVE%) DO IF EXIST %%I:\*.GHO SET DRV=%%i
REN %DRV%:\*.GHO XP.GHO
%CDROM%:\Ghost -clone,mode=pload,src=%DRV%:\xp.gho:1,dst=1:1 -sure -fx
GOTO END
:END1
call h.bat
:END
A:
测试可用.但执行到FOR %%I IN (%DRIVE%) DO IF EXIST %%I:\*.GHO SET DRV=%%i会提示G(光盘)未准备好.要安F.如果用管道命令"|"

[ Last edited by zsx on 2008-2-29 at 04:21 PM ]
2 发表于 2008-02-28 22:56 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
方法1: 用call shift 的方法避开%CDROM%盘符
方法2: vol %CDROM%根据返回值跳开%CDROM%盘符
第一高手 第二高手

3 发表于 2008-02-29 00:24 ·  中国 福建 龙岩 移动
初级用户
积分 87
发帖 32
注册 2007-11-21 23:46
18年会员
UID 103375
性别 男
状态 离线
我有2个光驱.其中一个放启动盘.当检测到另一个光驱时.由于没光盘无法读盘出错.不管如果加语句.还是会显示..重试?放弃?要安F键(放弃)就好.不知如何写AUTOEXEC.BAT语句跳过这个盘.

[ Last edited by zsx on 2008-2-29 at 12:32 AM ]
4 发表于 2008-02-29 01:07 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
看来还手把手给代码了
太玩了明天吧~
第一高手 第二高手

5 发表于 2008-02-29 10:26 ·  中国 福建 龙岩 移动
初级用户
积分 87
发帖 32
注册 2007-11-21 23:46
18年会员
UID 103375
性别 男
状态 离线
F| FOR %%I IN (%DRIVE%) DO IF EXIST %%I:\*.GHO SET DRV=%%i
这个语句为何不会自动会答 F 呢?
6 发表于 2008-02-29 11:47 ·  中国 福建 龙岩 移动
初级用户
积分 87
发帖 32
注册 2007-11-21 23:46
18年会员
UID 103375
性别 男
状态 离线
问题已解决.语句如下
FOR %%I IN (%DRIVE%) DO IF EXIST %%I:\*.GHO<F SET DRV=%%i
实现自动会答F
7 发表于 2008-02-29 11:49 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
用bart出的findcd可以直接根据光盘上的文件找到你想要的光驱盘符,不用挨个检测。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
8 发表于 2008-02-29 16:37 ·  中国 福建 龙岩 移动
初级用户
积分 87
发帖 32
注册 2007-11-21 23:46
18年会员
UID 103375
性别 男
状态 离线
确实有点难.我以为在IF EXIST %%I:\*.GHO后加<F会跳过另一个光盘.其实是没执行IF EXIST命令.
CLIMBING(7楼)没理解我的意思.GHOST.EXE在光盘.*.GHO在其它任意盘(不确定).启动盘在其中一个光驱.另一个光驱无盘.检测时会出错.一定要跳过.
9 发表于 2008-02-29 18:18 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
@echo off
call test.bat C D E F G H I J K L M N O P Q R S T U V W
pause

test.bat内容
:xxx 
if "%1"=="" goto end
if /i not "%CDROM%"=="%1" if exist "%1:\*.GHO" SET DRV=%1
if /i not "%CDROM1%"=="%1" if exist "%1:\*.GHO" SET DRV=%1
shift
goto xxx
:end


自己看一下是否有必要把"%CDROM%"=="%1"改成"%CDROM%:"=="%1"取决于你的环境变量情况自行修改
第一高手 第二高手

10 发表于 2008-02-29 19:40 ·  中国 福建 福州 连江县 电信
中级用户
★★
积分 356
发帖 115
注册 2004-07-27 00:00
21年会员
UID 29114
性别 男
状态 离线
shell=command.com /P /F
/F表示当command.com调用程序运行出错时,将Fail作为Abort,Retry,Fail中的默认选项
好象可以解决楼主的问题。
11 发表于 2008-02-29 22:17 ·  中国 福建 龙岩 移动
初级用户
积分 87
发帖 32
注册 2007-11-21 23:46
18年会员
UID 103375
性别 男
状态 离线
已试过10楼的办法可行.谢谢.我接着试9楼的办法.学习学习.
论坛跳转: