无忧启动论坛
标题:
关于生成ISO的问题
[打印本页]
作者:
6108
时间:
2012-6-4 13:10
标题:
关于生成ISO的问题
自由天空新版的PE里都有个“生成ISO.exe”,请问可不可以用批处理实现这个功能?
1.jpg
(3.4 KB, 下载次数: 63)
下载附件
2012-6-4 13:10 上传
作者:
chiannet
时间:
2012-6-4 14:33
这个程序能生成几种不同引导风格的ISO,内置cdimage、mkisofs,使用经多次稽查,甄别出来的极佳兼容的参数。它必需与sptuppe.exe联袂才能工作。
作者:
6108
时间:
2012-6-4 14:42
网上百度后发现去年9月左右发行的五子登科里有“生成iso.cmd”,觉得应该能用批处理实现啊?可惜我批处理仅知皮毛,不会!感觉这个东东挺方便的,修改完后运行下ISO就出来了,那位大侠能整一个出来啊?
作者:
chiannet
时间:
2012-6-4 14:46
标题:
回复 #3 6108 的帖子
具体看cdimage、mkisofs的命令行
作者:
chiannet
时间:
2012-6-4 14:54
procedure CreateMINI;
var
p,z,a,b,w:string;
SysTime: TsystemTime;
begin
p:=ExtractShortPathName(ExtractFilePath(Application.ExeName))+'SKYPETEMP\';
z:='Sky123_Mini_PE';
a:=p+'..\'+z+'.iso';
if fileexists(a+'.bak') then begin SetfileAttr (a+'.bak',128); deletefile(a+'.bak'); end;
if fileexists(a) then
if not movefile(a,a+'.bak') then
begin
showmessage(a+'正被使用中!');
Application.Terminate;
exit;
end;
a:=p+'..\MYCD\AXPE\';
if fileexists(a+'grldr') then begin
zipFile(a+'grldr',a+'GRLDR.SKY');
movefile(a+'grldr',P);
unzipStream('cdimage',p+'CDIMAGE.EXE');
unzipStream('miniz',p+'b.bif');
GetSystemTime(SysTime);
if SysTime.wMonth<10 then a:='0'+IntToStr(SysTime.wMonth) else a:=IntToStr(SysTime.wMonth);
if SysTime.wday<10 then b:='0'+IntToStr(SysTime.wday) else b:=IntToStr(SysTime.wday);
a:=a+'/'+b+'/'+IntToStr(SysTime.wyear) +',';
if SysTime.whour<10 then b:='0'+IntToStr(SysTime.whour) else b:=IntToStr(SysTime.whour);
a:=a+b+':';
if SysTime.wminute<10 then b:='0'+IntToStr(SysTime.wminute) else b:=IntToStr(SysTime.wminute);
a:=a+b+':';
if SysTime.wsecond<10 then b:='0'+IntToStr(SysTime.wsecond) else b:=IntToStr(SysTime.wsecond);
w:=' -t'+a+b+' -g ';
a:= '"'+p;
b:=a+'cdimage.exe" -l"'+z+'" -h -n -m -o -d'+w+'-c -b'+a+'b.bif" -o "'+p+'..\mycd" "'+z+'.ISO"';
a:=p+'..\mycd\';
movefile(a+'AXPE\BOOTMGR',p);
movefile(a+'AXPE\BCD',p);
movefile(a+'AXPE\HDD',p);
WinExecAndWait32(b,1);
if fileexists(p+'BOOTFIX.BIN') then moveFile(p+'BOOTFIX.BIN',a+'AXPE\');
movefile(p+'BOOTMGR',a+'AXPE\');
movefile(p+'BCD',a+'AXPE\');
movefile(p+'HDD',a+'AXPE\');
movefile(p+'grldr',a+'AXPE\');
if fileexists(a+'AXPE\GRLDR.SKY') then deletefile(a+'AXPE\GRLDR.SKY');
if Directoryexists(p) then winExec(pchar('cmd /c RD /S /Q "'+p+'"'), SW_HIDE);
end else if lg963 then showmessage('未发现 '+ExtractFilePath(Application.ExeName)+'MYCD\AXPE\GRLDR!') else
showmessage(ExtractFilePath(Application.ExeName)+'MYCD\AXPE\GRLDR is missing!');
end;
复制代码
以上是创建ntldr引导格式的ISO时的过程,当中又调用了下面一些函数或过程.
zipFile(...);
movefile(...);
unzipStream(...)
GetSystemTime(...)
作者:
6108
时间:
2012-6-4 17:39
有点儿像是Delphi 函数?好多判断等,晕了
欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/)
Powered by Discuz! X3.3