26 123
发新话题
打印

DOS乱谈!

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

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


作一个可以改变人生的人.

TOP

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.
附件: 您所在的用户组无法下载或查看附件
作一个可以改变人生的人.

TOP

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:文本内容
附件: 您所在的用户组无法下载或查看附件
作一个可以改变人生的人.

TOP

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是返回的错误代码(不必理会)
附件: 您所在的用户组无法下载或查看附件
作一个可以改变人生的人.

TOP

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超级启动盘说明文件”]
作一个可以改变人生的人.

TOP

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

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

附件: 您所在的用户组无法下载或查看附件
作一个可以改变人生的人.

TOP

DOS乱谈!

关于WBAT能不能详细介绍一下

TOP

DOS乱谈!

很好!向JE64大哥学习!
欢迎来我的论坛作客,讨论启动技术:

http://www.haopeng.org/bbs/

启动技术区
影视音乐区
游戏动漫区
休闲娱乐区  

TOP

DOS乱谈!

[这个贴子最后由je64在 2004/08/08 11:51am 第 1 次编辑]
引用:
下面引用由general2004/08/08 10:34am 发表的内容:
关于WBAT能不能详细介绍一下
我觉得我说的很详细了!!
没见到网上有这个介绍!
作一个可以改变人生的人.

TOP

DOS乱谈!

je64斑竹,哪有WBAT的中文资源介绍一下也行啊

TOP

 26 123
发新话题