中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [原创]js与vbs互转的wsf脚本 上一主题 | 下一主题
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『楼 主』:  [原创]js与vbs互转的wsf脚本


<!-- 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>


2008-2-1 14:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

我晕~还以为是……

原来是。。。生成的VBS在自己下面有JS的源码,自己读自己然后过滤写到TEMP去。。。再调用。。


不过WSF文件还是头一次看。。。开始还以为是flash呢。
这个倒是挺新的……

2008-2-1 14:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by slore at 2008-2-1 02:48 PM:
我晕~还以为是……

原来是。。。生成的VBS在自己下面有JS的源码,自己读自己然后过滤写到TEMP去。。。再调用。。

我想,通过把vbs和js的语句表达严格对应来实现互相转换恐怕是行不通的吧?

2008-2-1 18:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: