> ZipToInf v1.12 GA$=OS_GetEnv:ctrl%255,name%128,extra%128,zp%6:os%=32:Win_TextIO Lquit$=cl(" -qu",1):debug%=cl("-de",0):help%=cl("-?",0):::exit() (Edest$=cl("-d",1):inf%=cl("-X",0):vb%=cl("-q",0):in$=cl("",0) 2Cin$="-help":"ZipToInf v1.12 (C)J.G.Harston 1999-2017":help%= A%-1:max%=-A%-2000+4000*(>&FFFF):mem% max%:wr%=2:rd%=4 dVin$="":"File to extract metadata from: "in$:dest$="":"Destination path: "dest$ nBin%=f_openin(in$):in%=0:"File '"in$"' not found":exit(214) xVf_gbpb(rd%,in%,zp%,4,0):!zp%<>&04034B50:"Not a ZIP file":#in%:in%=0:exit(127) dest$<>"":dest$=dest$+d$ 7#in%=0::f_gbpb(rd%,in%,zp%,4,0):id%=!zp%:done%= $(id%&FFFF)=&4B50#in%:done%= id%=&04034B50:file 3done%:#in%=#in%-3:"Damaged ZIP file?";13; &id%=&02014B50id%=&06054B50#in% #in%:in%=0:exit(0): file 0f_gbpb(rd%,in%,extra%,26,0):flags%=ex16(2) 5mtime%=fstime(ex16(6)):mdate%=fsdate(ex16(8)) 7csize%=extra%!14:fsize%=extra%!18:nameln%=ex16(22) =extln%=ex16(24):nameln%:f_gbpb(rd%,in%,mem%,nameln%,0) 9mem%?nameln%=13:name$=$mem%:x%=01274:extra%!x%=0: ,extln%:f_gbpb(rd%,in%,extra%,extln%,0) /hdrid%=ex16(0):dsz%=ex16(2):sig%=extra%!4 2load%=extra%!8:exec%=extra%!12:attr%=extra%!16 "7ctime%=fstime(ex16(24)):cdate%=fsdate(ex16(26)) ,Aacc%=ex16(28):aux%=ex16(30):hdrid%<>&4341:dsz%=0:attr%=&33 6+name$=fn_unzip(name$):vb%:name$;" "; @9unzip:#in%=#in%+csize%+(12((flags%8)<>0)):vb%: J Tݤex16(A%)=extra%!A%&FFFF ^ unzip h(name$,1)=d$:name$=name$,name$-1) r/leaf$=fn_leaf(name$):name$=fn_path(name$) |Ainf$=leaf$+s$+"inf":(os%-24)=0:inf$=leaf$,8)+s$+"inf",10) inf$=dest$+name$+inf$ )(os%-24)=0:inf$=45:inf$="@."+inf$ ensurepath(inf$) inf%:dsz%>12:dsz%=12 .A$=leaf$+" ":A$<11:A$=A$+10-leaf$," ") 9A$=A$+h0(load%,8)+" "+h0(exec%,8)+" "+h0(fsize%,8) #dsz%>12:A$=A$+" "+h0(attr%,2) Hdsz%>21:A$=A$+" "+h0(mdate%,4)+" "+h0(mtime%,6)+" "+h0(cdate%,4) $dsz%>23:A$=A$+" "+h0(cdate%,6) "dsz%>25:A$=A$+" "+h0(acc%,4) "dsz%>27:A$=A$+" "+h0(aux%,4) PA$=A$+eol$:out%=f_openout(inf$):A%=1A$:#out%,A$,A%,1)::#out%:out%=0 7A%=file(inf$,5):X%!3=X%!3&FFFFFF:A%=file(inf$,2)  Bݤfstime(A%):=((A%&F800)2048)+((A%&7E0)*8)+((A%31)*131072) Rݤfsdate(A%):A%=A%-&200:=(A%31)+((A%&1E0)*8)+((A%&1E00)*8)+((A%&E000)256) &#ݤfn_unzip(A$):(os%-24)=8:=A$ 0 A%=1A$ :Xos%<32:B%="./#?$<^>@= ",A$,A%,1)):B%:A$=A$,A%-1)+"/.?#<$>^=@_",B%,1)+A$,A%+1) D5os%>31:A$,A%,1)="/":A$=A$,A%-1)+"\"+A$,A%+1) NQ:A%=0:B%=A$+".",".",A%+1):B%-A%>fln%-1:A$=A$,A%+fln%)+A$,B%):B%=A%+fln% XA%=B%:B%>=A$:=A$ b!ensurepath(A$):A$,d$)=0: l4A$=A$+d$:A$=A$,A$-1):A$,1)=d$:A$=A$,A$-1) vf_info(A$,5)=2: B$=A$:A$="": BB$<>"":A%=B$+d$,d$):A$=A$+d$,A$<>"")+B$,A%-1):B$=B$,A%+1) !f_info(A$,5)<>2:f_cdir(A$)  B$="":  f_init 31:>&FFFFF:X%256:ș"GetModuleFileName",0,X%,255:run$=$$X%:=@cmd$ 4\A%=(>&FFFF)&900:?(P-3):A%=((>&9FFF)A%)((&1400-)(A%=0))A%=((A%-&500)&200)&FFF >iA$=$(-&E00+A%):A%=0:run$=A$:ș16A$,,A%:ș72,"",A%:A$=A$,1+A$+" "," ",1+A$," "))):A$=0:A$=run$ H*Y%=-10:A$=" "+A$:A$=A$,2):A$<>32 R4Y%:A$=34:A%=A$,"""",2)+1Y%:A%=A$+" "," ") \CY%:run$=A$,1-(A$=34),A%-1+2*(A$=34)):run$<>"":A$=A$,A%+1) f :=A$ p$os(A$):A$=42:A$A$<>"":A$ z Fexit(A%):"FX1,"+(A%255):quit$=quit$:A$=quit$:quit$="":os(A$) >&FFFFF:ȘA% os%<6:*Quit  cݤcl(l$,n%):l$="":A$=s(A$):A$=34:A%=A$+" "" ",""" ",2):l$=A$,2,A%-2):A$=s(A$,A%+1)):=l$ "":A%=A$,l$):A%:A$=s(A$,A%-1)+A$,A$," ",A%)+1))+" ":= n%=0:l$<>"":= %A%=" ",l$=32)+A$,l$):A%=0:="" 'A$=A$,A%-1)+s(A$,A$," ",A%)+1)) Cl$=32:l$=A$,A%):A$=A$,A%-1):=l$,1-(l$=34),l$+2*(l$=34)) PA$,A%,1)<>34:l$=A$,A%,A$+" "," ",A%)-A%):A$=A$,A%-1)+A$,A%+l$+1):=l$ Jl$=A$,A%+1,A$+""" ",""" ",A%+1)-A%-1):A$=A$,A%-1)+A$,A%+l$+3):=l$ /ݤs(A$):A$,1)=" ":A$=A$,2):A$,1)<>" " +A$,1)=" ":A$=A$,A$-1):A$,1)<>" " =A$ $$ݤh0(A%,N%):="0000000"+~A%,N%) .Lݤfile(A$,A%):<&FFFFF:$name%=A$:?X%=name%:X%?1=name%256:=(&FFDD)&FF 8RA$=f_name(A$):A%=255A%=5:X%!14=(A$):X%!14:X%!10=#X%!14:#X%!14:X%!14=&33 B1A%=255:X%?6=0:"LOAD """+A$+""" "+~X%!2:=1 LA%=5:X%!14:=1A%=5:=0 VFA%=0:"SAVE """+A$+""" "+~X%!10+" "+~X%!14:X%!10=X%!14-X%!10:=1 `BA%=7:"SAVE """+A$+""" "+~+"+"+~X%!10:X%!10=X%!14-X%!10:=1 j A%=8 t ::=2 ~"mkdir "+A$:=2  =0 %f_gbpb(A%,chn%,addr%,num%,ptr%) >?X%=chn%:X%!1=addr%:X%!5=num%:X%!9=ptr%:<&FFFFF:&FFD1: A%=1A%=3:#?X%=X%!9 3:A%=1A%=2:#?X%,?X%!1A%=3A%=4:?X%!1=#?X% 2X%!1=X%!1+1:X%!5=X%!5-1:(#?X%A%>2)X%!5<1: 8f_cdir(A$):(os%-24):A$="mkdir "+A$A$="cdir "+A$ 磌  A$:   :: A$   !ݤf_openin(A$)=(f_name(A$)) "ݤf_openout(A$)=(f_name(A$)) (Wݤf_name(A$):os%-32:A%,B%:B%=A%:A%=A$,"\",A%+1):A%=0:A$,".",B%)=0:A$=A$+"." 2=A$ <Win_TextIO F-ș"GetStdHandle",-10@hfile%(1):*INPUT 13 P.ș"GetStdHandle",-11@hfile%(2):*OUTPUT 14 Z%ș"SetConsoleMode",@hfile%(1),0: dVݤNetFS_Op(A%,A$):!X%=0:X%?1=8+A$:<&FFFF:X%!3=A%:$(X%+7)=A$:A%=&14:&FFF1:=X%?3 nN$(X%+4)=A$:ș&60048,A%,X%+4,X%?1,124A%:A%:X%?3=?A%:ș&2002B,A%+4$(X%+4) x =X%?3 iݤNetFS_OpN(A%,T%,O%,A$):!X%=0:X%?1=O%+1+A$:X%!3=A%:X%?7=T%:$(X%+O%)=A$:<&FFFF:A%=&14:&FFF1:=X%?3 Cș&60048,A%,X%+7,X%?1,120A%:A%:X%?3=?A%:ș&2002B,A%+4$(X%+4)  =X%?3