把任意文件转成vbs文件的file2vbs的vbs代码

(编辑:jimmy 日期: 2024/12/23 浏览:2)


Tr4c3:为了方便在dos下使用,我把inputbox改成了args。

复制代码 代码如下:
'Program By xiaolu 
'name:file2vbs.vbs 
On error resume next 
Set Args = Wscript.Arguments 
If Args.length<>2 Then 
Wscript.Echo "Usage:" & Wscript.ScriptName & " c:\muma.exe c:\muma.vbs" 
Wscript.Quit 
End If 

do while 1 
fname = Args(0) 
Set Ado = CreateObject("adodb.stream") 
With Ado 
.Type = 1 
.open 
.loadfromfile fname 
ss = .read 
End With 
exit do 
Loop 

fname = Args(1) 
Set Fso=CreateObject("Scripting.FileSystemObject") 
Set File=fso.OpenTextFile(fname,2, True) 
lens=lenB(ss) mod 500 
For j=0 to int(lenB(ss)/500)-1 
if j=0 then 
File.writeline "ss="""&Bin2Str(midb(ss,500*j+1,500))&"""_" 
else 
File.writeline "+"""&Bin2Str(midb(ss,500*j+1,500))&"""_" 
end if 
next 
if lens>0 then 
File.writeline "+"""&Bin2Str(rightb(ss,lens))&"""" 
else 
File.writeline "+"&chr(34)&chr(34) 
end if 
File.writeline "" 
File.writeline "Set RS=CreateObject(""ADODB.Recordset""):L=Len(ss)/2:RS.Fields.Append ""m"",205,L:RS.Open:RS.AddNew:RS 
(""m"")=ss&ChrB(0):RS.Update:ss=RS(""m"").GetChunk(L)" 
File.writeline "Set s=CreateObject(""ADODB.Stream""):with s:.Mode = 3:.Type = 1:.Open():.Write ss:.SaveToFile  
wscript.arguments(0),2:end with" 
File.close 
Set fso=nothing 
Ado.close 
set Abo=nothing 
Function Bin2Str(Re) 
For i = 1 To lenB(Re) 
bt = AscB(MidB(Re, i, 1)) 
if bt < 16 Then Bin2Str=Bin2Str&"0" 
Bin2Str=Bin2Str & Hex(bt) 
Next 
End Function 

重新生成文件的办法

cscript xx.vbs x:\xxxx.exe