タグ付けされた質問 「vbscript」


4
IE9でJavaScriptからVBScriptに何も渡さない
VBScriptで記述されたフレームワークがあります。このフレームワークの一部の関数の内部では、関数のパラメーターがIfステートメントでNothingに対してチェックされ、いくつかのアクションが実行されます。JavaScriptで記述されたフレームワークを使用するコード。したがって、いくつかのアクションを実行するには、関数にNothingを渡す必要があります。IE8以前のバージョンでは、次のアプローチが機能しました。 <script type="text/vbscript"> Function Test(val) If (IsNull(val)) Then Test = "Null" ElseIf (IsObject(val)) Then If (val Is Nothing) Then Test = "Nothing" End If End If End Function Dim jsNothing Set jsNothing = Nothing msgBox(Test(jsNothing)) msgBox(Test(Null)) </script> <script type="text/javascript"> alert(Test(jsNothing)); </script> IE <9では、出力はNothing、Null、Nothingになります。 IE9の場合:なし、Null、Null。 IE9でJavaScriptからVBScriptにNothingを渡すにはどうすればよいですか? すみません、醜いのはわかっていますが、閉じ込められています。そして、VBScriptは嫌いです。 編集: フレームワーク機能の例があります。アプリケーションで広く使用されているため変更できません。 Function ExampleFunction(val) …

5
VBScript(cscriptで起動されたvbsファイル)に引数を渡すことはできますか?
このスクリプトを「test.vbs」に保存しました。 Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.OpenTextFile(workFolder &"\test.txt", 2, True) File.Write "testing" File.Close Set File = Nothing Set FSO = Nothing Set workFolder = Nothing スクリプトを実行するときに、「workFolder」変数の値を渡したいと思います。 これどうやってするの?できますか?「cscripttest.vbsworkFolder: 'C:\ temp \'」のようなものでしょうか? ボーナス質問:渡された変数を「SetworkFolder = Nothing」でクリーンアップする必要がありますか、それともVBSCriptは終了時に自動的にクリーンアップしますか?「SetFile = Nothing」や「SetFSO = Nothing」も不要なのかもしれません。これら両方の質問に対する答えをご存知の場合はお知らせください。

4
VBScript —エラー処理の使用
VBScriptを使用してエラーをキャッチし、ログに記録して(つまり、エラーが発生した場合は「何かをログに記録」)、スクリプトの次の行を再開したいと思います。 例えば、 エラー時に次を再開 'ステップ1を実行します 'ステップ2を実行します 'ステップ3を実行します 手順1でエラーが発生した場合、そのエラーをログに記録して(または、他のカスタム機能を実行して)、手順2から再開します。これは可能ですか?どうすればそれを実装できますか? 編集:私はこのようなことをすることができますか? エラー時にmyErrCatchを再開します 'ステップ1を実行します 'ステップ2を実行します 'ステップ3を実行します myErrCatch: 'ログエラー 次を再開

1
GetRefのメモリ消費量(ガベージコレクション)がKB4525236で変更されました
Windows 2016サーバー/ Windows 10クライアントにKB4525236をインストールした後、メモリ不足の問題が発生します。このセキュリティ修正により、から関数を呼び出すときにメモリがガベージコレクションされる瞬間が変わったようGetRefです。 プレKB4525236 を通じて呼び出された関数で作成された各インスタンスGetRefは、インスタンス変数が次のように設定されるとすぐにガベージコレクションされます。nothing KB4525236の投稿 関数で作成された各インスタンスGetRefはメモリに残り、関数全体が完了するまでガベージコレクションされません。ループでインスタンスを作成すると、特に32ビットプロセスでは、これがすぐに加算されてメモリ不足につながる可能性があります。 ご質問 オンラインで関連するものを見つけることができないので、同じ問題が発生している他の人から確認を得たいと思います。スクラッチを 編集:これは同じ問題ですが、現時点で解決策はありません (KB4524570(2019年11月12日)Windows 10 1903以降のvbscript.dll class_terminateバグ) 誰かが検証して実行可能なソリューションを知っていれば、それは素晴らしいことです。 POC KB4525236がインストールされているデバイスで実行されている次のスクリプトは、次の場合のガベージコレクションの違いを示しています。 直接呼び出されます:最初のインスタンスが破棄された後にのみ2番目のインスタンスが作成されます(これは私たちの望ましい動作です) コールスルーGetRef:最初のインスタンスが破棄される前に 2番目のインスタンスが作成されるため、メモリを使用する2つのインスタンスがあります。 名前を付けて保存:KB4525236.vbs として実行:wscript KB4525236.vbs Dim Name, Log Class IDummyInstance Dim FName Sub Class_Initialize FName = Name Log = Log & "Initialize " & FName & VbNewLine End Sub Sub Class_Terminate …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.