0

file1.vbs と file2.vbs の 2 つの vbscript ファイルがあります。a.vbs には次のコードがあります。

薄暗い a : a = 1

function myFunction(k)
...
end function

call myFunction(a)

したがって、file1.vbs は実際にはスタンドアロンで実行できます。ここで、file2.vbs で、file1.vbs にある myFunction(k) を呼び出したいと思います。ただし、file1.vbs を file2.vbs にインポートすると、呼び出し元の myFunction もインポートされ、パラメーター "a" を使用して myFunction が自動的に実行されます... myFunction に別のパラメーターを与える可能性があるため、これは私が望むものではありません「b」と言います。

file1.vbs がスタンドアロンで実行できるようにプログラムを構成するにはどうすればよいですか? file2.vbs も file1.vbs で myFunction を呼び出すことができますが、入力パラメーターは異なります。ありがとう。

4

1 に答える 1

3

私の意見では、.vbs再利用可能なサブ/関数/クラスのみを含み、最上位 (即時実行) コードを含まないライブラリ/モジュール ファイルを用意するのが最善の方法です。このMicrosoft TechNet の投稿に示されているように、ユーザー.vbsファイルはExecuteGlobal経由でライブラリをインポートします。.ReadAll()

(同様の機能を持つが、ローカルスコープを持つオブジェクトと変数も定義できるExecuteも参照してください。)

モジュールとトップレベルのコードを混在させたい場合は、Pythonic のイディオムを使用して、現在のWScript.ScriptNameコードを文字列リテラルと比較し、一致する場合にのみ適切な「トップレベルのコード」を呼び出すことができます。

于 2012-08-24T11:08:23.593 に答える