无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 5823|回复: 5
打印 上一主题 下一主题

谁帮我解释下这段BAT代码

[复制链接]
跳转到指定楼层
1#
发表于 2008-8-27 14:19:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
echo "%~dp0">tempriso.tx
type tempriso.tx | find /I "\SupperCD\PESETUP\" >nul
If not "%Errorlevel%"=="0" (Echo.&&Echo.&&Echo    请先将ISO或U盘内所有文件复制到 SupperCD 文件夹下再进行封装,按任意键退出 。。。 &&del tempriso.tx /q>nul 2>nul&PAUSE>NUL 2>NUL&&Exit)
del tempriso.tx /q>nul 2>nul
Echo.&&Echo.&&Echo       正在重新封装,请稍候 。。。
copy ..\boot\ISOLINUX.BIN ..\iso.bif /y>NUL 2>NUL
%DelATTR% grldr >NUL 2>NUL & %DelATTR% ..\*.* >NUL 2>NUL
If not Exist ..\grldr copy grldr ..\ /y>NUL 2>NUL&&del ..\AUTOEXEC.BAT /q >NUL 2>NUL&&del ..\COMMAND.COM /q >NUL 2>NUL&&del ..\IO.SYS /q >NUL 2>NUL&&del ..\MSDOS.SYS /q >NUL 2>NUL&&del ..\grub.exe /q >NUL 2>NUL
If Exist ..\ntldr del ..\ntldr /q >NUL 2>NUL
If not Exist ..\AUTORUN.INF copy Ins\AUTORUN.INF ..\ /y>NUL 2>NUL
Ins\MKISOFS -R -b iso.bif -no-emul-boot -boot-load-size 4 -V SupperCD -hide iso.bif -hide-joliet iso.bif -hide boot.catalog -hide-joliet boot.catalog -p blank -o ..\..\SupperCD.ISO ..
del ..\iso.bif /q >NUL 2>NUL
PAUSE>NUL 2>NUL

谁帮我解释下这段BAT代码
2#
发表于 2008-8-28 04:52:03 | 只看该作者
echo "%~dp0">tempriso.tx   《应该是把引号内的字符放到文件tempriso.tx里面
type tempriso.tx | find /I "\SupperCD\PESETUP\" >nul   《这个是在TEMPRISO.TX里面寻找字符SUPPERCD什么的
If not "%Errorlevel%"=="0" (Echo.&&Echo.&&Echo    请先将ISO或U盘内所有文件复制到 SupperCD 文件夹下再进行封装,按任意键退出 。。。 &&del tempriso.tx /q>nul 2>nul&PAUSE>NUL 2>NUL&&Exit)  《 如果没匹配显示错误
del tempriso.tx /q>nul 2>nul  《删除刚才建立的TEMPRISO.TX文件
Echo.&&Echo.&&Echo       正在重新封装,请稍候 。。。  《 提示
copy ..\boot\ISOLINUX.BIN ..\iso.bif /y>NUL 2>NUL  《复制ISOLINUX.BIN采用合并模式和文件ISO.BIF
%DelATTR% grldr >NUL 2>NUL & %DelATTR% ..\*.* >NUL 2>NUL  《这个不知道
If not Exist ..\grldr copy grldr ..\ /y>NUL 2>NUL&&del ..\AUTOEXEC.BAT /q >NUL 2>NUL&&del ..\COMMAND.COM /q >NUL 2>NUL&&del ..\IO.SYS /q >NUL 2>NUL&&del ..\MSDOS.SYS /q >NUL 2>NUL&&del ..\grub.exe /q >NUL 2>NUL 《这行仿佛是在建立启动系统
If Exist ..\ntldr del ..\ntldr /q >NUL 2>NUL 《删除NTLDR,如果存在的话
If not Exist ..\AUTORUN.INF copy Ins\AUTORUN.INF ..\ /y>NUL 2>NUL  《如果没有AUTORUN.INF文件,则复制INS目录下的
Ins\MKISOFS -R -b iso.bif -no-emul-boot -boot-load-size 4 -V SupperCD -hide iso.bif -hide-joliet iso.bif -hide boot.catalog -hide-joliet boot.catalog -p blank -o ..\..\SupperCD.ISO ..  《然后用MKISOFS建立了一个SUPPERCD.ISO的ISO文件
del ..\iso.bif /q >NUL 2>NUL  《删除文件ISO.BIF
PAUSE>NUL 2>NUL  《暂停,按任意键退出


OVER不知道能帮助你不
回复

使用道具 举报

3#
发表于 2008-8-28 08:28:57 | 只看该作者
这个是利用MKISOFS制作ISOLINUX可启动ISO的。
回复

使用道具 举报

4#
发表于 2008-8-28 10:29:04 | 只看该作者
echo "%~dp0">tempriso.tx 将批处理运行的当前路径传送到当前文件夹中的tempriso.tx中
type tempriso.tx | find /I "\SupperCD\PESETUP\" >nul 查找tempriso.tx中是否有\SUPUERCD\PESETUP字串
If not "%Errorlevel%"=="0" (Echo.&&Echo.&&Echo    请先将ISO或U盘内所有文件复制到 SupperCD 文件夹下再进行封装,按任意键退出 。。。 &&del tempriso.tx /q>nul 2>nul&PAUSE>NUL 2>NUL&&Exit)
del tempriso.tx /q>nul 2>nul
Echo.&&Echo.&&Echo       正在重新封装,请稍候 。。。
copy ..\boot\ISOLINUX.BIN ..\iso.bif /y>NUL 2>NUL
%DelATTR% grldr >NUL 2>NUL & %DelATTR% ..\*.* >NUL 2>NUL
If not Exist ..\grldr copy grldr ..\ /y>NUL 2>NUL&&del ..\AUTOEXEC.BAT /q >NUL 2>NUL&&del ..\COMMAND.COM /q >NUL 2>NUL&&del ..\IO.SYS /q >NUL 2>NUL&&del ..\MSDOS.SYS /q >NUL 2>NUL&&del ..\grub.exe /q >NUL 2>NUL
If Exist ..\ntldr del ..\ntldr /q >NUL 2>NUL
If not Exist ..\AUTORUN.INF copy Ins\AUTORUN.INF ..\ /y>NUL 2>NUL
Ins\MKISOFS -R -b iso.bif -no-emul-boot -boot-load-size 4 -V SupperCD -hide iso.bif -hide-joliet iso.bif -hide boot.catalog -hide-joliet boot.catalog -p blank -o ..\..\SupperCD.ISO ..
del ..\iso.bif /q >NUL 2>NUL
PAUSE>NUL 2>NUL

谁帮我解释下这段BAT代码

后面的很简单,并且有人已经解释了
回复

使用道具 举报

5#
发表于 2008-8-28 13:20:08 | 只看该作者
echo "%~dp0">tempriso.tx
把文件当前路径写入到当前目录中的tempriso.tx中,没有则建立tempriso.tx文件,用 echo %cd%>tempriso.txt也可,但最后少一个\

type tempriso.tx | find /I "\SupperCD\PESETUP\" >nul
查找tempriso.tx文件中的\SUPUERCD\PESETUP字符串参数/i是查找时不区分字符串大小写

If not "%Errorlevel%"=="0" (Echo.&&Echo.&&Echo    请先将ISO或U盘内所有文件复制到 SupperCD 文件夹下再进行封装,按任意键退出 。。。 &&del tempriso.tx /q>nul 2>nul&PAUSE>NUL 2>NUL&&Exit)
::这是个条件语句,结合上一句来分析,如果没有查找到\SupperCD\PESETUP\字符串,即在执行FINDfind /I "\SupperCD\PESETUP\"时的错误返回码非0时,在命令行提示请先将ISO或U盘内所有文件复制到 SupperCD 文件夹下再进行封装,按任意键退出 。。。当成功执行回显后用静默模式删除tempriso.tx(不提示用户是否删除的交互对话),不管是否删除tempriso.tx成功,在此执行暂停,按下任意键退出批处理.程序到结束.

del tempriso.tx /q>nul 2>nul  
如果find /I "\SupperCD\PESETUP\"的错误返回码为0时,跳转到此继续执行,即找到\SUPUERCD\PESETUP字符串时,静默模式删除tempriso.tx
Echo.&&Echo.&&Echo       正在重新封装,请稍候 。。。 <<=======提示

copy ..\boot\ISOLINUX.BIN ..\iso.bif /y>NUL 2>NUL
复制父目录里boot子目录下的ISOLINUX.BIN到父目录下并改命为iso.bif,存在iso.bif文件时则覆盖.

%DelATTR% grldr >NUL 2>NUL & %DelATTR% ..\*.* >NUL 2>NUL
本句%DelATTR%是个变量,要看批处理全句,如果把变量%DelATTR%赋于(set delattr=attrib -h -r -s)即%DelATTR% grldr=attrib -h -r -s  grldr为去掉grldr的只读隐藏系统属性,不难理解%DelATTR% ..\*.*就是为去掉父目录所有文件的只读隐藏系统属性.要看实际情况如何定义变量%DelATTR%赋予的参数

If not Exist ..\grldr copy grldr ..\ /y>NUL 2>NUL&&del ..\AUTOEXEC.BAT /q >NUL 2>NUL&&del ..\COMMAND.COM /q >NUL 2>NUL&&del ..\IO.SYS /q >NUL 2>NUL&&del ..\MSDOS.SYS /q >NUL 2>NUL&&del ..\grub.exe /q >NUL 2>NUL
这句一并分析了,如果父目录下不存在grldr文件则复制当前目录下grldr过去,成功复制完毕并删除父目录下autoexec.bat,command.com,io.sys,msdos.sys,grub.exe五个文件

If Exist ..\ntldr del ..\ntldr /q >NUL 2>NUL
如果父目录存在ntldr文件则删除ntldr

If not Exist ..\AUTORUN.INF copy Ins\AUTORUN.INF ..\ /y>NUL 2>NUL  
如果父目录的下不存在AUTORUN.INF文件,并复制Ins目录AUTORUN.INF文件到父目录

Ins\MKISOFS -R -b iso.bif -no-emul-boot -boot-load-size 4 -V SupperCD -hide iso.bif -hide-joliet iso.bif -hide boot.catalog

-hide-joliet boot.catalog -p blank -o ..\..\SupperCD.ISO ..  

对MKISOFS命令不熟悉,应该是制作一张可启动的光盘镜像,用iso.bif作为引导文件,文件系统为joliet,卷标为SupperCD文件名为
SupperCD.ISO 输出到当前父目录的父目录下。

del ..\iso.bif /q >NUL 2>NUL  <<=======删除父目录的下iso.bif文件
PAUSE>NUL 2>NUL   
  
                                          ====================over==================


如有曲解请指正!!!

[ 本帖最后由 haiou327 于 2011-4-5 14:04 编辑 ]
回复

使用道具 举报

6#
 楼主| 发表于 2008-8-30 16:47:33 | 只看该作者
非常感谢 非常感谢 非常感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-9-23 20:10

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表