联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
'any2bat {s11ss 2008-1-5} '获取要转换的文件: If Not WScript.Arguments.Count=1 Then WScript.Quit Set fso=CreateObject("scripting.filesystemobject") Set f=fso.GetFile(WScript.Arguments(0)) If Err Then WScript.Quit If f.Size=0 Then WScript.Quit '获取文件2进制代码: Set stream=CreateObject("adodb.stream") With stream .Type=1:.Open:.LoadFromFile f End With bin=stream.Read(f.Size) '生成bat: n=&h100:str="" Set bat=fso.CreateTextFile(f.Path&".bat") bat.WriteLine "@more <""%~f0"" +1|debug>nul&&move t """&f.Name&"""&goto :eof" For i=1 To Lenb(bin) zero="" one=Ascb(Midb(bin,i,1)) If one<16 Then zero="0" str=str&" "&zero& Hex(one) If i Mod 16=0 Then bat.WriteLine "e"& Hex(n)&str:str="":n=n+16 Next If Not str="" Then bat.WriteLine "e"& Hex(n)&str bat.WriteLine "n t" bat.WriteLine "rcx" bat.WriteLine Hex(f.Size) bat.WriteLine "w" bat.WriteLine "q" stream.Close:bat.Close Set stream=Nothing:Set f=Nothing:Set bat=Nothing:Set fso=Nothing WScript.Echo "Successful!"
'any2bat {s11ss 2008-1-6} '获取要转换的文件: If Not WScript.Arguments.Count=1 Then WScript.Echo "把要转换的文件托拽到我身上!":WScript.Quit Set fso=CreateObject("scripting.filesystemobject") Set f=fso.GetFile(WScript.Arguments(0)) If Err Then WScript.Quit If f.Size=0 Then WScript.Quit '获取文件2进制代码: Set stream=CreateObject("adodb.stream") With stream .Type=1:.Open:.LoadFromFile f End With bin=stream.Read(f.Size) '生成bat: n=&h100:str="" Set bat=fso.CreateTextFile(f.Path&".bat") bat.WriteLine "@more <""%~f0"" +1|debug>nul&&move t """&f.Name&"""&goto :eof" For i=1 To Lenb(bin) zero="" one=Ascb(Midb(bin,i,1)) If one<16 Then zero="0" str=str&" "&zero& Hex(one) If i Mod 16=0 Then bat.WriteLine "e"& Hex(n)&str:str="":n=n+16 Next If Not str="" Then bat.WriteLine "e"& Hex(n)&str size=Hex(f.Size):l=Len(size)-4 If l<=0 Then bx="0":cx=size If l>0 Then bx=Left(size,l):cx=Right(size,4) bat.WriteLine "n t" bat.WriteLine "rbx" bat.WriteLine bx bat.WriteLine "rcx" bat.WriteLine cx bat.WriteLine "w" bat.WriteLine "q" stream.Close:bat.Close Set stream=Nothing:Set f=Nothing:Set bat=Nothing:Set fso=Nothing WScript.Echo "Successful!"
'any2bat {s11ss 2008-1-17} '获取要转换的文件: If Not WScript.Arguments.Count=1 Then WScript.Echo "将要转换的文件托拽到我身上!":WScript.Quit Set fso=CreateObject("scripting.filesystemobject") Set f=fso.GetFile(WScript.Arguments(0)) If Err Then WScript.Quit If f.Size=0 Then WScript.Quit '获取文件2进制代码: Set stream=CreateObject("adodb.stream") With stream .Type=1:.Open:.LoadFromFile f End With bin=stream.Read(f.Size) '生成bat: cr=vbCrLf:n=&h100:line=1:seg=1:segeof=false:str="" Set bat=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" For i=1 To Lenb(bin) zero="":segeof=false:one=Ascb(Midb(bin,i,1)) If one<16 Then zero="0" str=str&" "&zero& Hex(one) If i Mod 16=0 Then bat.WriteLine "e"& Hex(n)&str:str="":n=n+16:line=line+1 If line Mod 4081=0 Then bat.WriteLine "n t"&seg&cr&"rcx"&cr&"ff00"&cr&"w":seg=seg+1:n=&h100:line=1:segeof=true Next If Not str="" Then bat.WriteLine "e"& Hex(n)&str If Not segeof Then bat.WriteLine "n t"&seg&cr&"rcx"&cr& Hex(f.Size-(seg-1)*65280)&cr&"w"&cr&"q" stream.Close:bat.Close Set stream=Nothing:Set f=Nothing:Set bat=Nothing:Set fso=Nothing WScript.Echo "Successful!"
Originally posted by knoppix7 at 2008-1-5 05:19 PM: 文件大小有限制吗?
bat.WriteLine "n t" bat.WriteLine "rbx" bat.WriteLine bx bat.WriteLine "rcx" bat.WriteLine cx bat.WriteLine "w" bat.WriteLine "q"
n=vbCrLf bat.WriteLine "n t" & n & "rbx" & n & bx & n & "rcx" & n & cx & n & "w" & n & "q"