0

そのため、私は VBScript を頻繁に使用しており、同じ関数を呼び出すスクリプトがいくつかあります。現時点では、各スクリプトにはその関数が一番下にコピーされているだけですが、いくつかのファイルを更新する必要があるため、更新する必要があると面倒です (そして、通常はいくつかを忘れます)。私ができる方法はあり
ますか:1.「TestScript1」に「TestScript2」を呼び出さ せる2.
「TestScirpt2」に「TestScript1」から引数を取得させる(つまり、特定の日付変数)
「TestScript1」に戻る 3 つの異なる引数

そして、ボーナスは、実際に何らかの方法ですべてを実行し、「TestScript2」と対話する複数のスクリプトで機能させることができる場合です。

4

3 に答える 3

0

HTAの使用を検討したことがありますか? これは、複数のスクリプト ファイルを読み込んで結合する場合に HTA を使用する方法の例です。

<html>
<head>
<title>Demo IT</title>

<HTA:APPLICATION
     ID="objShowMe"
     APPLICATIONNAME="HTAShowMe"
     SCROLL="yes"
     SINGLEINSTANCE="yes"
     WINDOWSTATE="maximize"
>

<SCRIPT Language="VBScript" src="testscript2.vbs"/>
<SCRIPT Language="VBScript">

Sub TakeOff
     text = "1 2 3"
     argArray = GiveMeThree(text)
     msgbox argArray(0)
     msgbox argArray(1)
     msgbox argArray(2)
End Sub

</SCRIPT>
</head>

<body>

<h1>In the body</h1>
<input type="button" value="Click me!" onclick="TakeOff">

</body>
</html>

testscript2.vbs

Public Function GiveMeThree(x)
    GiveMeThree = split(x, " ")
End Function
于 2013-11-13T16:27:50.373 に答える
0

これを行う最善の方法は、 Windows Script Componentを作成することだと思います。これにより、VBScript または COM をサポートするその他のプログラミング言語など、どこからでも呼び出すことができる、完全に焼き付けられた COM オブジェクトとしてスクリプトが公開されます。

コード例を次に示します。これは、拡張子が .wcs のファイルにあります。

<?XML version="1.0"?>
<?component error="false" debug="false"?>
<component id="SVInfo">
    <registration
        progid="Tmdean.ScriptFunctions"
        description="Description of your COM object"
        version="1.5"
        clsid="{3267711E-8359-4BD1-84A6-xxxxxxxxxxxx}"/>
        <!-- generate your own GUID to use in the line above -->
    <public>
        <method name="MyMethod"/>
    </public>
    <script language="VBScript">
        <![CDATA[
        Function MyMethod(param1, param2)
            MyMethod = param1 + param2
        End Function
        ]]>
    </script>
</component>

次のコマンドで、このファイルを COM に登録します。

regsvr32 scrobj.dll /n /i:file://J:\scripts\scriptfunctions.wcs

次に、スクリプト コンポーネントで定義した ProgID を使用して、VBScript でメソッドを呼び出すことができます。

Dim script_functions
Set script_functions = CreateObject("Tmdean.ScriptFunctions")

WScript.Echo script_functions.MyMethod(2, 2)
于 2013-11-13T16:35:59.577 に答える