Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

wsf2vbs

codecubers17ISC1.0.0

Windows Script File (WSF) to Visual Basic Script (VBS)

WSF, WSFParser, Windows Script File, VBS, VBSParser, VBScript, Visual Basic, JS, JScript, JScript Praser, WSH, Windows Script Host File

readme

Windows Script File (WSF) to Visual Basic Script (VBS) converter

A tiny package to efficiently convert WSF file into VBS file.

Assuming a simple wsf with below content:

<?xml version="1.0" ?>
<?job error="true" debug="true" ?>
<package>
    <job id="job1">
        <runtime>
            <named helpstring="Enter the Script to exeucte" name="script" />
            <named helpstring="Enter the Msg" name="msg" />
        </runtime>
        <script language="VBScript" name="script" >
            Dim script
            'Read and assess the parameter supplied
            if WScript.Arguments.named.exists("script") Then
                WScript.Echo "Argument received: " & WScript.Arguments.named("script")
                script = WScript.Arguments.named("script")
            Else
                WScript.Arguments.ShowUsage
                WScript.Quit
            End If
        </script>
        <script language="VBScript" src="scripts\FS.vbs" />
    </job>

    <job id="job2">
        <runtime>
            <named helpstring="Enter the Str" name="str" />
        </runtime>
        <script language="VBScript" >
            Wscript.Echo "We are in Job2"
        </script>
    </job>
</package>

The generated VBS would be:

the responding output jscript file is like :

' ======== START ======== 
' vbs file generated from wsf file using wsf2vbs npm package 

' ================================== Job: job1 ================================== 
' ================= inline script ================= 

Dim script
'Read and assess the parameter supplied
If WScript.Arguments.named.exists("script") Then
    WScript.Echo "Argument received: " & WScript.Arguments.named("script")
    script = WScript.Arguments.named("script")
Else
    Wscript.Echo "/script:  Enter the Script to exeucte"
    Wscript.Echo "/msg:  Enter the Msg"

    WScript.Quit
End If
' ================= src : scripts\FS.vbs ================= 
Class FS
    Private objFSO

    Private Sub Class_Initialize
        Set objFSO = CreateObject("Scripting.FileSystemObject")
    End Sub

    Public Function GetFSO
        Set GetFSO = objFSO
    End Function

    Public Function GetFileDir(ByVal file)
        Wscript.Echo "GetFileDir(" + file + ")"
        Set objFile = objFSO.GetFile(file)
        GetFileDir = objFSO.GetParentFolderName(objFile)
    End Function
End Class

' set oFs = new FS
' Wscript.Echo oFs.GetFileDir(WScript.ScriptFullName)
' ================================== Job: job2 ================================== 
' ================= inline script ================= 

Wscript.Echo "We are in Job2"

' ======== END ========

Usage

parse a wsf file by path: extract()

const fs = require('fs');
const wsf2vbs = require('wsf2vbs');
wsf2vbs.extract(wsfPath, debug).then((vbs)=>{
    fs.writeFileSync(path.join(__dirname, 'test_out_extract.vbs'), vbs);
}).catch((error)=>{
    console.error(error)
})

parse a wsf file by content: extractFromStr()

(Or) if the content is available in string, simply pass it to String parser 'extractFromStr'

const fs = require('fs');
const wsf2vbs = require('wsf2vbs');
// For Demo: Genearate string of wsf file
let xml = await fs.readFileSync(wsfPath).toString();
wsf2vbs.extractFromStr(xml, debug).then((vbs)=>{
    fs.writeFileSync(path.join(__dirname, 'test_out_extract.vbs'), vbs);
}).catch((error)=>{
    console.error(error)
})

Alternatives

Convert wsf to intermediate JSON file

Instead of generating vbs file, if the use case is to convert wsf file to a json format for post processing use npm package wsf2json. Note current project uses wsf2json as a dependency.