联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
<!-- js<->vbs {Author:s11ss|From:www.cn-dos.net|Date:2008-2-1} --> <job> <script language=vbscript> With WScript.Arguments If .Count<1 Then .ShowUsage:WScript.Quit For i=1 To .Count s=s&vbCrLf&vbCrLf&i&"."&T(.Item(i-1)) Next End With WScript.Echo s Function T(file) Select Case Right(file,4) Case ".vbs",".vbe" ext="js" Case ".jse" ext="vbs" Case Else If Right(file,3)=".js" Then ext="vbs" End Select If ext="" Then T="It's not a vbs or js file: "&file:Exit Function Set fso=CreateObject("Scripting.FileSystemObject") If Not fso.FileExists(file) Then T="It doesn't exist: "&file:Exit Function str=getResource(ext) Set orgf=fso.OpenTextFile(file) If ext="vbs" Then While Not orgf.AtEndOfStream aline=orgf.ReadLine str=str&vbCrLf&"';"&aline Wend Else str=str&vbCrLf&orgf.ReadAll&vbCrLf&";*/" End If orgf.Close Set newf=fso.CreateTextFile(file&"."&ext,True) newf.Write str newf.Close Set fso=Nothing:Set orgf=Nothing:Set newf=Nothing T="Created: "&file&"."&ext End Function </script> <!-- usage and resource to use --> <runtime> <description> vbs2js or js2vbs (Other files won't be changed.) </description> <unnamed name="filename" helpstring="The file(s) to be changed." many="true" required="1" /> </runtime> <resource id=js> <![CDATA[ var WshShell=new ActiveXObject("WScript.Shell") var fso=new ActiveXObject("Scripting.FileSystemObject") var self=fso.OpenTextFile(WScript.ScriptFullName) var vbsPath=WshShell.ExpandEnvironmentStrings("%tmp%")+"\\t2.1.vbs" var vbs=fso.CreateTextFile(vbsPath,true) var found=false var str="" while (!self.AtEndOfStream) { var aline=self.ReadLine() if (found) {if (aline!=unescape("%3b")+unescape("%2a")+unescape("%2f")) str=str+aline+"\r\n"} else if (aline==unescape("%2f")+unescape("%2a")+unescape("%3b")) found=true } vbs.Write(str) vbs.Close() self.Close() var arg="" for(var i=0;i<WScript.Arguments.Count();i++) arg=arg+" "+WScript.Arguments(i) WshShell.Run(WScript.FullName+" "+vbsPath+arg) WScript.Sleep(500) fso.DeleteFile(vbsPath) /*; ]]> </resource> <resource id=vbs> <![CDATA[ Set WshShell=CreateObject("WScript.Shell") Set fso=CreateObject("Scripting.FileSystemObject") Set self=fso.OpenTextFile(WScript.ScriptFullName) jsPath=WshShell.ExpandEnvironmentStrings("%tmp%")&"\t2.1.js" Set js=fso.CreateTextFile(jsPath,True) While Not self.AtEndOfStream aline=self.ReadLine If Left(aline,2)=Chr(&h27)&Chr(&h3b) Then str=str&Right(aline,Len(aline)-2)&vbCrLf Wend js.Write str js.Close:self.Close For i=0 to WScript.Arguments.Count-1 arg=arg&" "&WScript.Arguments(i) Next WshShell.Run WScript.FullName+" "+jsPath+arg WScript.Sleep 500 fso.DeleteFile jsPath Set WshShell=Nothing:Set fso=Nothing:Set self=Nothing:Set js=Nothing ]]> </resource> </job>
Originally posted by slore at 2008-2-1 02:48 PM: 我晕~还以为是…… 原来是。。。生成的VBS在自己下面有JS的源码,自己读自己然后过滤写到TEMP去。。。再调用。。