![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-10 03:37 |
共 47,812 主题排行 / 349,914 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 批处理文件!谁能看懂? |
| 可打印版本 4,124 / 18 |
| 第1楼 sxhc6868 | 发表于 2006-02-15 12:50 |
| 初级用户 发帖 19 积分 50 | |
|
批处理文件!谁能看懂? 从GHOST.IMG中提取的两个批处理文件,制做自已的GHOST光盘,功能:一回从光盘回恢GHOST,二,运行中文分区DISKMAN,可是进入菜单后提示找不找A盘,原因是提取的两个批处理都加载了虚拟软盘A,所以无法正常运行,(我是BOOTEASY制做的)。现在想修改批处理文件,可是不知道从那里下手。修改后的功能是直接从光盘中菜单选择GHOST,或者DISKMAN。请批处理高手帮助!
提取文件一:AUTOEXEC。BAT如下。 ECHO OFF LH MSCDEX.EXE /D:mscd000>nul 加载CD-ROM驱动到高端内存并传送到虚拟软盘/D是什么意思? findcd /s>nul 不明白!是不是传送findcd.exe文件到虚拟软盘? 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 不明白是什么意思,可能是找光驱的盘符吧? %CDROM%: ghost -clone,mode=pload,src=winxpsp2.gho:1,dst=1:1 -sure -rb 自已恢得光盘的的winxp.gho文件。 请教>nul是传送相关文件到虚拟软盘的意思吧!别外我想不调用虚拟软盘,想直接从光盘中运行GHOST.exe。我是不是应该把它删去!?????? 提取文件二:findcd.bat批处理文件 如下! 在GHOST.IMG下提取的FINCDC.BAT文件,应刻是光驱分配盘符的自动处理文件,能看懂一点。请高手指教! @echo off 关闲显示 set file=%1 设置文件变量参数为%1 :FCDR 标号 if "%CDROM1%"=="%2:" goto SCDR 如果参数%1完全等于%2就跳转到标号scdr的语句。 shift 如果不完全相等,则左移一位,就是取A,B,C。。。 goto FCDR 跳到标号fcdr语句处 :SCDR 标号 cda %2:>nul 把光盘的文件加载到虚拟软盘???????????CDA是什么意思? IF errorlevel 1 goto next 这一句不明白??? if not exist %2:\%FILE% goto next 不明白???? set cdrom=%2 应该是设置光驱盘符为变量%2取的值? goto end 跳转到结束语句? :next 标号! if "%2"=="Z" goto end 如果变量%2完全等于Z则跳到结束语句。 shift 否则左很移一位。 goto SCDR 否则跳转到语句scdr处。 :end 结束语句。 我以上分析对不对,请老师给指教一二。另外,不想把光盘的文件加载到虚拟软盘上,直接在光盘 上调用是不是把 cda %2:>nul 这一句删除了就可以??? 我想实践上述功能如何修改这两个批处理??? |
|
| 第2楼 sxhc6868 | 发表于 2006-02-16 15:34 |
| 初级用户 发帖 19 积分 50 | |
|
怎么没有人回贴,,,,,,,,自已顶一下,不能沉下去!
|
|
| 第3楼 wl00560 | 发表于 2006-02-17 01:07 |
| 银牌会员 发帖 709 积分 1,384 | |
|
我比你还不如呢,嘻嘻,帮你顶一下。
|
|
| 第4楼 willsort | 发表于 2006-02-17 09:48 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re sxhc6868:
你的理解很多都是正确的,我只对你原文理解有误或有偏差的地方做了简单的注释,重新张贴于下,愿与兄共鉴!
>nul 是将命令执行后的输出信息重定向到空设备中,即隐藏信息输出。 从光盘调用 ghost.exe ,只需要在 ghost 前加上它在光盘中的路径即可 提取文件一:AUTOEXEC.BAT 提取文件二:findcd.bat(应为findcdr.bat) |
|
| 第5楼 sxhc6868 | 发表于 2006-02-17 15:06 |
| 初级用户 发帖 19 积分 50 | |
|
谢谢版主,谢谢版主,等我仔细研究研究,不懂的地方再发贴请教!
|
|
| 第6楼 sxhc6868 | 发表于 2006-02-18 19:36 |
| 初级用户 发帖 19 积分 50 | |
|
版主:我有几个地方理解的不太清楚。请兄能否能解释一下!
一:nul 是将命令执行后的输出信息重定向到空设备中,即隐藏信息输出。 从光盘调用 ghost.exe ,只需要在 ghost 前加上它在光盘中的路径即可 这句话的意思是不是,NUL的作用是把程序运行的结果不在屏幕 上显示出来。 如果不加NUL参数,则运行结果就会在屏幕上显示出来? 二: 可在 shift 之后加一句 if "%2"=="" goto end 解决此问题 加这一句的意思是:没有找到相对应的光驱盘符,也跳转到结束,在实际应用 是是不是意味着这个计算机没有光驱。。。?????、 三: 此处代码存在问题,因为 %cdrom1% 只保存了第一个光驱盘符,只能与命令行中盘符串成功匹配一次 :: *** 如果在第一次匹配成功的 scdr 中检测无法通过,则以后的检测都属多余操作 :: *** 在此建议:或者判断并改用 %cdrom2% 进行盘符匹配,或者在 scdr 中直接跳至 end 处结束 这句话我理解的稀里湖涂的。。我的理解是,如果第一次匹配光驱成功,但是SCDR检测没有GHOST.EXE文件,则取光驱盘符不是Z时,左移一位,又跳到SCDR处,检测是否有GHOST.exe文件,直到检测到光驱上ghost.exe文件,假如,最后一个盘符也没有GHOST.EXE文件,但符合Z的条件,则结束整个程序。 是不是这样,为什么要加最后的那个 %cdrom2% 进行盘符匹配呢?另外,这个程序是不是能在双光驱的机子上找到GHOST.EXE文件,如果我说错了,要改的话,具体我改怎么改。 |
|
| 第7楼 Scott0902 | 发表于 2006-02-19 00:30 |
| 中级用户 发帖 237 积分 466 | |
|
一、没错
二、意味着没有加载光驱,或者光驱不存在。 |
|
| 第8楼 willsort | 发表于 2006-02-20 14:16 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re sxhc6868:
十分抱歉!因为精力有限,对于非解答室的主题帖,我的回复往往会延迟数日。对你的三点问题分别回复如下: 一、确实如此,不过此处的 NUL 因为使用了重定向符号 > ,因而并不会传递给前面的 findcd 或者其它 DOS 命令与程序,所以此时它和 > 均不属于命令行参数。而是一个 DOS 下的逻辑设备,可以“吞噬”一切输入输出数据,copy nul test1.txt 就是比较典型的用例。 二、if "%2"=="" goto end 的直接含义为,命令行中盘符串循环匹配结束后,跳出循环不再匹配。这里存在以下几种可能: 1、%cdrom1% 有值,并且在 fcdr 中撇配成功,但在 scdr 中检测未通过; 2、%cdrom1% 有值,但并不是 c-z 的任何一个盘符,则程序始终无法成功匹配,最后跳出 fcdr 循环; 3、%cdrom1% 为空,程序也无法成功匹配,最后跳出end处结束 fcdr 循环。至于 %cdrom1% 是否为空,为何为空,这取决于程序所处的环境。可能是没有或未加载光驱,也可能是 findcd 执行错误,也可能是 DOS 环境空间溢出等,也可能是其它未知的原因。 三、你的理解和原程序在此处都是正确的,是我的理解有误,我将 :end 前的 goto scdr 理解为了 goto fcdr 。多谢指正! |
|
| 第9楼 sxhc6868 | 发表于 2006-02-21 13:18 |
| 初级用户 发帖 19 积分 50 | |
|
非常感谢版主!知道你非常忙,但是能得到你的回复心中十分高兴,是不是这贴子我发错地方了,,,,无意中发了个精品贴!
还有疑问版!我按照你说的修改了findcd.bat文件,加入了if "%2"=="" goto end 这一句,而后制成IMG文件,放入EASYBOOT中做成了ISO。选择GHOST,时,能进入GHOST。EXE,可是提示如下“A:\ghostterr.txt"选择退出或者继续,不知道是什么问题? 还有ISO文件的菜单二是DISKMAN,提示如下”打开文件LOOKBACK.BAT出错,你将不能使用回朔功能, 我想这是不是我没有加载虚拟软盘的原因!在原AUTOEXEC。BAT中如何加载!! |
|
| 第10楼 willsort | 发表于 2006-02-22 14:07 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re sxhc6868:
第一个问题:需要查看 A:\ghosterr.txt 文件内容才能知道具体原因,这是 ghost 生成的错误信息报告文件,里面应该有具体的错误号码和信息; 第二个问题: LOOKBACK.BAT 怀疑应为 LOOKBACK.DAT ,这是 diskman/diskgen 所要生成的数据文件,其中记录这 diskman/diskgen 的分区操作,以供“回溯”(即撤销); 这两个问题应该都与虚拟盘有关,可引导光盘大部分是模拟类引导,即模拟软驱(通常为A:)并加载软盘镜像作为虚拟软盘进行引导,而软盘启动过程中有可能还会利用内存再虚拟出一个内存磁盘(通常为硬盘后的第一个盘符)。 在这其间,因为光盘是只读的,无法写入任何临时文件和数据,因此所有会生成临时数据和文件的程序都应避免在光盘直接运行。而光盘虚拟出的虚拟软盘,因为虚拟方式的不同,有可能只读(很少一部分),有可能可写,因此许多软件都选择在虚拟软盘中运行。而虚拟软盘中再虚拟出的内存盘则必然可写,因此许多需要频繁读写临时数据的程序会选择在内存盘中。 根据你的情况,我建议将 diskman / ghost 直接放入可引导软盘镜像中,在光盘中使用此软盘镜像引导系统,或者在引导完成后将它们拷贝到虚拟软盘或内存盘中运行。 |
|
| 第11楼 sxhc6868 | 发表于 2006-02-22 16:46 |
| 初级用户 发帖 19 积分 50 | |
|
谢谢版主,你说得都是非常专业的问题,"我建议将 diskman / ghost 直接放入可引导软盘镜像中,在光盘中使用此软盘镜像引导系统,或者在引导完成后将它们拷贝到虚拟软盘或内存盘中运行。"
我是个新手,以上面的例子为例,我应该如何去做.能说详细一点吗! |
|
| 第12楼 sxhc6868 | 发表于 2006-02-22 19:05 |
| 初级用户 发帖 19 积分 50 | |
|
版主:我在网上查了资料!跟虚拟软盘有关系的几个命令如下:
ramdrive.sys 虚拟磁盘文件 xmsdsk.exe 虚拟内存盘创建程序!应该加载它吧! 具体是在autoexec.bat中还是在config.sys中加载,如何加载? |
|
| 第13楼 sxhc6868 | 发表于 2006-02-26 16:43 |
| 初级用户 发帖 19 积分 50 | |
|
浏览量这么大,怎么就是没有人回,,,,,,,,,
|
|
| 第14楼 Scott0902 | 发表于 2006-02-27 17:38 |
| 中级用户 发帖 237 积分 466 | |
|
ramdrive.sys 必须在config.sys里加载
xmsdsk.exe 可以在config.sys或autoexec.bat里加载,运行 xmsdsk /? 查看详细用法。 |
|
| 第15楼 sxhc6868 | 发表于 2006-03-01 15:16 |
| 初级用户 发帖 19 积分 50 | |
|
@ECHO OFF
XMSDSK 2048 /Y FINDRAMD IF %RAMDRIVE%#==# GOTO NORAM COPY COMMAND.COM %RAMDRIVE%\ COPY REBOOT.COM %RAMDRIVE%\ COPY EXTRACT.EXE %RAMDRIVE%\ EXTRACT /E /L %RAMDRIVE%\ EBD.CAB > NUL SET COMSPEC=%RAMDRIVE%\COMMAND.COM PATH=%RAMDRIVE%;A: LH MSCDEX /D:IDE-CD /D:SCSI-CD /S /K LH MOUSE.COM > NUL %RAMDRIVE% DISKGEN GOTO SET :NORAM ECHO. ECHO. ECHO. ECHO COMPUTER CAN NOT MAKE RAMDRIVER , IT WILL BE RESTART ...... PAUSE > GOTO SET :SET echo MS-DOS 7.1 ... 这是DSIKMAN的AUTOEXEC.BAT文件!修改后的!也能正常运行 diskman,,,发出来,给大家共同分享! |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |