无忧启动论坛
标题:
谁帮我解释下这段BAT代码
[打印本页]
作者:
hql5693541
时间:
2008-8-27 14:19
标题:
谁帮我解释下这段BAT代码
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代码
作者:
xbox1
时间:
2008-8-28 04:52
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不知道能帮助你不
作者:
yichya
时间:
2008-8-28 08:28
这个是利用MKISOFS制作ISOLINUX可启动ISO的。
作者:
wowfans
时间:
2008-8-28 10:29
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代码
后面的很简单,并且有人已经解释了
作者:
haiou327
时间:
2008-8-28 13:20
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 编辑
]
作者:
hql5693541
时间:
2008-8-30 16:47
非常感谢 非常感谢 非常感谢
欢迎光临 无忧启动论坛 (http://wuyou.net./)
Powered by Discuz! X3.3