Board logo

标题: DOS乱谈! [打印本页]

作者: je64    时间: 2004-8-8 17:21     标题: DOS乱谈!

在EASYBOOT中调用的DOS工具都需要制作成IMG的文件格式。
要想熟练的制作IMG文件,就必须对DOS有一定的了解。
DOS的基础就是批处理文件的编辑和系统文件的配置。
附件中提供的是洪恩在线上的一篇“DOS 概述及入门”,看过之后,就会对DOS有一个初步的认识。


在制作PQ的IMG文件时,因其本身文件太大,你不想把它加进IMG文件中,那你可以把它放在你的光盘中,配置
你的IMG文件在启动时加载光驱的驱动,进入光驱下的PQ所在目录中去运行PQ也可以达到一样的效果。
在你的配置文件CONFIG.SYS中加入:
DEVICEHIGH=VIDE-CDD.SYS /D:mscd000
(这并不是唯一的,还有其它的驱动,如:MSCDEX.EXE、ASPICD.SYS等)
在你的自动运行批处理文件AUTOEXEC.BAT的最后加入:
%CDROM%:\TOOLS\PQMAGIC\
PQMAGIC.EXE
(假如你的PQ文件放在了CDROM:\TOOLS\PQMAGIC\下)
为了确保能成功,最好是直接更改加载光驱的IMG文件。
值得一提的是现在越来越多的人有不只一个光驱,当放在从盘的光驱时,就有可能出错了。
介绍一个支持多光驱的方法:
在你的自动运行批处理文件AUTOEXEC.BAT执行程序之前加入:
CDA %CDROM% > NUL
IF errorlevel 1 GOTO NEXTCD
IF NOT EXIST %CDROM%:\TOOLS\PQMAGIC\PQMAGIC.EXE GOTO NEXTCD
;如果没有找到光驱下的\TOOLS\PQMAGIC\PQMAGIC.EXE这个文件就跳转到NEXTCD
GOTO BOOT
:NEXTCD
CALL CHCDROM.BAT C D E F G H I J K L M N O P Q R S T U V W X Y Z
\TOOLS\PQMAGIC\PQMAGIC.EXE可以替换为你启动光盘上目录下真实存在的一个文件名。

CHCDROM.BAT的内容如下:
:LOOP
IF %CDROM%==%1 GOTO CD
shift
GOTO LOOP
:CD
IF %1==Z GOTO ERROR
shift
CDA %1 > NUL
IF errorlevel 1 GOTO CD
IF NOT EXIST %1:\TOOLS\PQMAGIC\PQMAGIC.EXE GOTO CD
SET CDROM=%1
GOTO END

:ERROR
RESTART.COM

:END
以我的PQ8双语版为例:
;AUTOEXEC.BAT
@ECHO OFF
PROMPT $P$G
set temp=c:\
set tmp=c:\
SET EXPAND=YES
SET DIRCMD=/O:N
set LglDrv=27 * 26 Z 25 Y 24 X 23 W 22 V 21 U 20 T 19 S 18 R 17 Q 16 P 15
set LglDrv=%LglDrv% O 14 N 13 M 12 L 11 K 10 J 9 I 8 H 7 G 6 F 5 E 4 D 3 C
CALL SETRAMD.BAT %LglDrv%
COPY COMMAND.COM %RAMD%:\
COPY RESTART.COM %RAMD%:\
COPY TW.EXE %RAMD%:\
REM EXTRACT /E /L %RAMD:\ EBD.CAB > NUL
SET COMSPEC=%RAMD%:\COMMAND.COM
PATH=%RAMD%:\;%CDROM%:\DOS\;A:\;

LH KILLER
LH CTMOUSE
LH MSCDEX.EXE /D:MSCD000 /L:%CDROM%
CDA %CDROM% > NUL
IF errorlevel 1 GOTO NEXTCD
IF NOT EXIST %CDROM%:\TOOLS\PQMAGIC\PQMAGIC.EXE GOTO NEXTCD
GOTO BOOT
:NEXTCD
CALL CHCDROM.BAT C D E F G H I J K L M N O P Q R S T U V W X Y Z

:BOOT
IF "%config%"=="CHS" GOTO PQCHS
IF "%config%"=="ENG" GOTO PQENG
echo.
GOTO QUIT

:PQCHS
Set LglDrv=
PATH=%RAMD%:\;A:\;C:\;%CDROM%:;%CDROM%:\TOOLS\PQPMCHT\;%CDROM%:\;
%CDROM%:\TOOLS\PQPMCHT\
PQMAGIC.EXE
GOTO RESET

:PQENG
Set LglDrv=
PATH=%RAMD%:\;A:\;C:\;%CDROM%:;%CDROM%:\TOOLS\PQMAGIC\;%CDROM%:\;
%CDROM%:\TOOLS\PQMAGIC\
PQMAGIC.EXE
GOTO RESET

:RESET
A:\
RESTART.COM > NUL
:QUIT

;我的PQ8双语版中的CHCDROM.BAT
:LOOP
IF %CDROM%==%1 GOTO CD
shift
GOTO LOOP
:CD
IF %1==Z GOTO ERROR
shift
CDA %1 > NUL
IF errorlevel 1 GOTO CD
IF NOT EXIST %1:\TOOLS\PQMAGIC\PQMAGIC.EXE GOTO CD
SET CDROM=%1
GOTO END
:ERROR
TW/NP >NUL
CLS
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.                           错误:   CD 启动失败
ECHO.
ECHO          出现意外错误,程序不能继续运行,请在重启后再试!
ECHO.
ECHO        请按任意键重新启动计算机,或者按 "Ctrl+C" 退出到DOS.
ECHO.
ECHO.
PAUSE > NUL
RESTART.COM
GOTO END
:END

;我的PQ8双语版中的CONFIG.SYS
[menu]
menuitem=CHS, Start PQMAGIC 8.0 For Chinese.
menuitem=ENG, Start PQMAGIC 8.0 For English.
menudefault=CHS,10
menucolor=7,0
[CHS]

[ENG]

[COMMON]
device=himem.sys /testmem:off
DEVICEHIGH=VIDE-CDD.SYS /D:mscd000
DEVICEHIGH=ASPICD.SYS /D:mscd000
files=10
buffers=15
dos=high,umb
stacks=9,256
devicehigh=ramdrive.sys /E 4096
lastdrive=z

因本人水平有限,本文难免有或多或少的错误出现,如发现有错,请及时提出,本人将及时更正!



作者: je64    时间: 2004-8-8 17:22     标题: DOS乱谈!

和大家分享一些DOS下有意思的东西.
1.DOS也可以显示中文
这玩意很多人都会,就是执行天汇汉字系统.

TW /np /n3 > nul
echo.
echo               ※※※※※※※※※※※※※※※※※※※※※※※※※
echo               ※                                              ※
echo               ※   请选择第一活动分区格式:                   ※
echo               ※                                              ※
echo               ※                  1.FAT32                     ※
echo               ※                                              ※
echo               ※                  2.NTFS                      ※
echo               ※                                              ※
echo               ※※※※※※※※※※※※※※※※※※※※※※※※※         
echo.
echo.
echo.      
echo     **********************  请按"1","2" 键进行选择 ********************
echo.

作者: je64    时间: 2004-8-8 17:22     标题: DOS乱谈!

2.改变DOS下文字的颜色和背景色
这里要用到一个小程序WRITEXT.EXE

详细的颜色代码可以执行WRITEXT.EXE /?得到.
TW /np /n3 > nul
cls
echo.
echo.
echo               ┏━━━━━━━━━━━━━━━━━━━━━━━━┓
echo               ┃                                                ┃
echo               ┃                                                ┃
echo               ┃                                                ┃
echo               ┃                                                ┃
echo               ┃                                                ┃
echo               ┃                                                ┃
echo               ┃                                                ┃
echo               ┃                                                ┃
echo               ┃                                                ┃
echo               ┃                                                ┃
echo               ┃                                                ┃
echo               ┃                                                ┃
echo               ┃                                                ┃
echo               ┃                                                ┃
echo               ┗━━━━━━━━━━━━━━━━━━━━━━━━┛
echo.
echo.
writext 5 25 -f10 "欢迎使用由je64制作的GHOST版预装系统"
writext 6 27 -f10 "++仅供测试研究之用、请勿传播++"
writext 8 26 -f11 "1. 自动安装系统到C盘"
writext 10 26 -f11 "2. 手动操作GHOST8.0(恢复到其它分区)"
writext 12 26 -f11 "3. 为第一分区添加引导NT功能(活动分区)"
writext 14 26 -f11 "4. 更改系统高级电源管理模式"
writext 16 26 -f11 "5. 采用BOOT控制法更改高级电源管理模式"
writext 22 1 -f15 "请选择你要执行的操作:"
writext X Y -f## -b## "TEXT"
X:文本显示的位置的横坐标
Y:文本显示的位置的纵坐标
-f##:文本颜色代码
-b##:文本背景颜色代码
TEXT:文本内容
作者: je64    时间: 2004-8-8 17:24     标题: DOS乱谈!

3.DOS下也有提示框
这时用到的是WBAT.COM

WBAT BOX "请确认数据已经备份,如继续此操作将覆盖原C盘所有文件,而且无法还原!!!",
确认执行,放弃并重启
;WBAT BOX (BLUE ON YELLOW) "是否现在就重新启动?",是,否
;WBAT BOX (RED ON YELLOW) "Note: Please make a choice!",OK
上面的BLUE是文字颜色,YELLOW是背景颜色。你也可以改成其它的试试。
要想上面的“是”和“否”都能准确的被执行,你还需要像下面:
:_sdchose
WBAT BOX  (BLUE ON YELLOW) "是否现在就重新启动?",是,否
IF NOT ERRORLEVEL 3 GOTO _sdre
GOTO _sdchose
:_sdre
IF ERRORLEVEL 2 GOTO quit
restart.com
:quit
上面的_sdre是重新启动的,quit是不重启的。3和2是返回的错误代码(不必理会)
作者: je64    时间: 2004-8-8 17:24     标题: DOS乱谈!

4.DOS下也支持长文件名
这里要用到的文件有:
CP437UNI.TBL DOSLFN的英文代码页,用于英文长文件名支持
CP936UNI.TBL DOSLFN的简体中文(GB)代码页,用于中英文长文件名支持
DOSLFN.COM   DOS下最强大实用的中英文长文件名驱动程序
LH DOSLFN /C- /Z:CP936UNI.TBL > NUL
把上面这行加入AUTOEXEC.BAT的前列。DOSLFN.COM和CP936UNI.TBL放到IMG文件中去就可以了!
(由于MS-DOS 7.10的各种与文件相关的内部命令、大多数外部命令,以及
许多其它DOS文件工具都支持长文件名的显示和操作,所以一旦有了提供长文件
名的API接口,这些程序就可以像在Win9x的“DOS窗口”中那样本地使用长文件
名了。以输入DIR命令为例,在长文件名功能打开时,系统默认会同时显示短文
件和其对应的长文件名,其中短文件名在屏幕的左侧,而长文件名则在右侧。
如果是进行其它的操作,如用COPY命令进行文件复制,则既可以在DOS命令行下
指定短文件名,也可以用长文件名。如果长文件名中有空格的话,请用引号括
起来。例如:COPY "This is a file.txt" C:\DOS)
[引自中国DOS联盟版主Wengier的“MS-DOS 7.10超级启动盘说明文件”]
作者: je64    时间: 2004-8-8 17:27     标题: DOS乱谈!

[这个贴子最后由je64在 2004/08/20 09:48am 第 1 次编辑]

5.DOS下用户的选择性操作
效果可参照图1和图2,用到的工具是choice.com
[图4. 选择性操作]
choice /c:12 > NUL
if errorlevel 2 goto NTFS
if errorlevel 1 goto FAT32
:NTFS
……
:FAT32
……
(按1执行FAT32下的内容,按2执行NTFS下的内容。错误返回代码要从后往前判断)
choice.com /c:   后跟的是可选项,这里是数字键1.2,也可以改成其它的键,默认是Y.N
choice.com /n    不提示任何信息,等待用户操作
choice.com /d:1  默认执行1
choice.com /t:10 等待用户操作10秒钟,如无操作则执行默认选项
choice.com TEXT  在可选项前显示TEXT字符串

6.查找文件内容
这里用到的工具是FIND.COM

find /i "timeout=0" c:\boot.ini
在c:\boot.ini中查找timeout=0


7.替换文件相关内容
这里用到的工具是CHANGE.EXE

chang /i c:\boot.ini /from "timeout=0" /to "timeout=8"
把c:\boot.ini中的timeout=0替换成timeout=8

个人认为有意思的一些批处理:
for %%c in (*.gho) do ghost.exe -clone,mode=pload,src=%CDROM%:\%%c:1,dst=1:1
查找光盘根目录下的以gho为扩展名的文件,找到之后把它自动恢复到第一活动分区

IF NOT EXIST %CDROM%:\TOOLS\PQMAGIC\PQMAGIC.EXE GOTO NEXTCD
;if exist c:\ntldr attrib -s -r -h c:\ntldr
如果找到%CDROM%:\TOOLS\PQMAGIC\PQMAGIC.EXE这个文件则跳转到NEXTCD

find /i "timeout=0" c:\boot.ini>c:\PART.TXT
查找c:\boot.ini中的timeout=0,把结果输出到c:\PART.TXT中

chang /i c:\boot.ini /from "timeout=0" /to "timeout=8"
把c:\boot.ini中的timeout=0替换成timeout=8

DOS的功能其实很强大,关键是要灵活的运用批处理,灵活的运用批处理中的变量。
本人在这方面也是新手,希望能和大家共同进步!!!


一楼的教材提供下载:
文件提取码: 7436885461926269
文件提取链接: http://pickup.chinamofile.com/7436885461926269


相关工具下载:
文件提取码: 7436885461926269
文件提取链接: http://pickup.chinamofile.com/7436885461926269

(下载链接均已失效,如有需要,可与作者联系)


作者: general    时间: 2004-8-8 18:34     标题: DOS乱谈!

关于WBAT能不能详细介绍一下
作者: lucky0504    时间: 2004-8-8 18:44     标题: DOS乱谈!

很好!向JE64大哥学习!
作者: je64    时间: 2004-8-8 18:51     标题: DOS乱谈!

[这个贴子最后由je64在 2004/08/08 11:51am 第 1 次编辑]
引用:
下面引用由general2004/08/08 10:34am 发表的内容:
关于WBAT能不能详细介绍一下
我觉得我说的很详细了!!
没见到网上有这个介绍!
作者: general    时间: 2004-8-8 19:14     标题: DOS乱谈!

je64斑竹,哪有WBAT的中文资源介绍一下也行啊
作者: 沙同    时间: 2004-8-9 03:12     标题: DOS乱谈!

这样的文章早就应该发出了,谢谢JE64!
作者: Hwlon    时间: 2004-8-9 15:58     标题: DOS乱谈!

我发现有一个高手编写的像 Fdisk 界面的 GDisk GUI 程序“QF.EXE”,使用起来就象 FDISK 一样简单,非常好用。不知是用什么软件开发的?请求知道的朋友告知。
深表感谢。

作者: xzf    时间: 2004-8-9 16:18     标题: DOS乱谈!

je64 越来越强了, 要向你学习进步呀,
作者: dragon7788    时间: 2004-8-9 18:30     标题: DOS乱谈!

引用:
下面引用由xzf2004/08/09 08:18am 发表的内容:
je64 越来越强了, 要向你学习进步呀,
强!!!顶!!!!!

作者: 抚轩    时间: 2004-8-10 06:50     标题: DOS乱谈!

好啊,真是好啊,真是高手啊
作者: je64    时间: 2004-8-11 18:07     标题: DOS乱谈!

***** 版主模式 *****
该贴子是管理员从<a href=forums.cgi?forum=1>EasyBoot 专题</a>转移过来的!
作者: smallwang    时间: 2004-8-14 01:14     标题: DOS乱谈!

真是好东西
作者: would    时间: 2004-8-18 10:08     标题: DOS乱谈!

這並不是亂談,而是一本dos聖經呢!多謝!
作者: LiLianjiang    时间: 2004-10-7 19:14     标题: DOS乱谈!

好!顶!
作者: 电脑网络迷    时间: 2005-10-30 07:11     标题: DOS乱谈!

已经够详细的了,不过向我这样的超级菜鸟,还是搞不懂,一遇到这样多的英文代码就头痛,要我单单看这些代码进行学习,我是没有办法的,我通常是下载一些启动文件,然后打开其文件查看批处理,这样通过实例就好懂多了,而且我只要在上面稍微改一些地方就可以改成适于自己的启动文件了。说实话,面对楼主这样的文件,我是一窍不通,所以我是没有机会成为高手了。
作者: yr18kljylt    时间: 2005-11-6 22:41     标题: DOS乱谈!

好好的学习一下~~~
作者: zjg012197    时间: 2005-11-12 05:28     标题: DOS乱谈!

好文章!我也想学学,不过就是没有找到这方面的资料,作为菜鸟的我真的很想得到je64大侠的那份资料,不知道大侠能否割爱??[br][br]-=-=-=-=- 以下内容由 zjg0121972005年11月11日 09:29pm 时添加 -=-=-=-=-
[br][br]-=-=-=-=- 以下内容由 zjg0121972005年11月11日 09:31pm 时添加 -=-=-=-=-
我是QQ是:39350493
我的邮箱是:zjg012197@126.com
作者: sgzof    时间: 2005-11-17 18:40     标题: DOS乱谈!

很好!向JE64大哥学习!
作者: liuxiaoniu    时间: 2006-9-28 21:26

小弟太菜了,一看到这些东西,就头大。有没有捷径可走?
作者: ynjzlad    时间: 2006-12-1 09:20

看了才知道自已太菜,还得不断学习.
作者: 看破红尘    时间: 2006-12-5 21:07

最近在学习DOS,就是为了这个制作光盘.




欢迎光临 EZB 论坛 (http://ultraiso.net/ezbbbs/) Powered by Discuz! 6.1.0