'获取要转换的文件:
IfNotWScript.Arguments.Count=1ThenWScript.Echo"将要转换的文件托拽到我身上!":WScript.Quit
Setfso=CreateObject("scripting.filesystemobject")
Setf=fso.GetFile(WScript.Arguments(0))
IfErrThenWScript.Quit
Iff.Size=0ThenWScript.Quit
'获取文件2进制代码:
Setstream=CreateObject("adodb.stream")
Withstream
.Type=1:.Open:.LoadFromFilef
EndWith
bin=stream.Read(f.Size)
'生成bat:
cr=vbCrLf:n=&h100:line=1:seg=1:segeof=false:str=""
Setbat=fso.CreateTextFile(f.Path&".bat")
bat.WriteLine"@md%tmp%\t1.17&&pushd%tmp%\t1.17&&more<""%~f0""+1|debug>nul&&popd&©/b%tmp%\t1.17\t*"""&f.Name&"""&&rd/s/q%tmp%\t1.17&goto:eof"
Fori=1ToLenb(bin)
zero="":segeof=false:one=Ascb(Midb(bin,i,1))
Ifone<16Thenzero="0"
str=str&""&zero&Hex(one)
IfiMod16=0Thenbat.WriteLine"e"&Hex(n)&str:str="":n=n+16:line=line+1
IflineMod4081=0Thenbat.WriteLine"nt"&seg&cr&"rcx"&cr&"ff00"&cr&"w":seg=seg+1:n=&h100:line=1:segeof=true
Next
IfNotstr=""Thenbat.WriteLine"e"&Hex(n)&str
IfNotsegeofThenbat.WriteLine"nt"&seg&cr&"rcx"&cr&Hex(f.Size-(seg-1)*65280)&cr&"w"&cr&"q"
stream.Close:bat.Close
Setstream=Nothing:Setf=Nothing:Setbat=Nothing:Setfso=Nothing
WScript.Echo"Successful!"