6

現在、スクリプト エラーが発生すると、WScript はメッセージ ボックスを表示します。これらのスクリプトは他のプロセスによって呼び出され、サーバー上で実行されるため、エラー ボックスを無視する人はいません。

私が望むのは、エラー メッセージが STDOUT にダンプされ、実行によって呼び出し元のプロセスが返されることです。MSGBox としてポップすると、全体がハングします。

アイデア?

4

6 に答える 6

4

これは、スクリプト バッチ ジョブを実行する方法です。

cscript //b scriptname.vbs
于 2008-10-16T08:15:00.010 に答える
2

WScript を使用しないでください。CScript を使用します。Windows コマンド プロンプトで、次のように入力してヘルプを表示します。

cscript //?
次のことをお勧めします。
cscript //H:CScript
これにより、CScript が既定のスクリプト インタープリターになります。CScript は、必要に応じてメッセージをコンソール (つまり、stdout) に出力します。(ダイアログ ウィンドウは使用しません。) //B スイッチを試してみることもできますが、スクリプトごとに実行する必要があるかどうかはわかりません。//H スイッチのように永続的な 1 回限りのスイッチである場合は、これでうまくいく可能性があります。そうでない場合は、すべてのリモート プログラムを変更して、それを含める必要がある場合があります。あなたが提供した情報から、デフォルトのインタープリター(//H)を変更するだけで、あなたが望むことができると思います。

また、スクリプトがエラーで終了しないように、何らかのエラー処理を追加する必要があります。Visual Basic Sc​​ripting Edition では、エラーを無視したい場合に最も簡単な方法は、スクリプトの先頭に次の行を追加することです。

On Error Resume Next
詳細については、 http://msdn.microsoft.com/en-us/library/53f3k80h (VS.85).aspx を参照してください。

于 2008-09-18T03:41:30.643 に答える
1

WScript.Echoの代わりに使用しMsgBoxます。また、Cscript代わりに を使用してスクリプトを実行しますWscript

于 2008-09-18T19:38:33.760 に答える
0

使用している言語については言及していません。VBScript を使用している場合は、On Error...ステートメントを使用してエラー ハンドラーを記述できます。JScript を使用している場合は、try {} catch (x) {}ブロックを使用できます。

于 2008-09-18T02:34:43.300 に答える
0

スクリプト コードを Sub に配置することをお勧めします。たとえばDoWork、スクリプトを次のようにコーディングします。

On Error Resume Next

DoWork

If Err.Number <> 0 Then

    If "CSCRIPT.EXE" = UCase( Right( WScript.Fullname, 11 ) ) Then
        WScript.StdErr.Write Err.Number & ": " & Err.Description
    Else
        WScript.Echo Err.Number & ": " & Err.Description
    End If
    WScript.Quit 1
End If

Private Sub DoWork

    ... your code ...

End Sub

このように、 を使用してスクリプトを実行しcscript //b、失敗すると、stderr にエラー メッセージが出力され、呼び出し元はゼロ以外のエラー レベルを受け取ります。

于 2011-09-01T07:21:36.123 に答える
0

これをしないでください:

vbscript: エラー時に次に再開

日本語: 「エラーが発生した場合は、無視して続行してください」.

于 2008-09-18T03:22:49.533 に答える