2016-11-01 10 views
2

からVBSのMsgBoxを実行しようと、私は次のコードでバッチファイルがあります:私はVBSメッセージボックスMsgBox.vbsバッチファイル

を開くにはERRORLEVEL 1の行を追加する必要があり

@echo off 

:START 

ping 192.168.9.19 -n 1 -w 1800000 > nul 2>&1 


if errorlevel 1 taskkill /F /IM excel.exe > nul 2>&1 



Timeout /t 1 > nul 2>&1 
@set errorlevel = 0 

GOTO START 

を私は次の行を追加しようとしたが、それはうまくいきませんでした:

wscript "C:\Users\James.Jayesuria\Desktop\MsgBox.vbs" < nul 2>&1 

私は、このようなようにそれを追加しました:

@echo off 

:START 

ping 192.168.9.19 -n 1 -w 1800000 > nul 2>&1 


if errorlevel 1 taskkill /F /IM excel.exe > nul 2>&1 
wscript "C:\Users\James.Jayesuria\Desktop\MsgBox.vbs" 


Timeout /t 1 > nul 2>&1 
@set errorlevel = 0 

GOTO START 

誰かがコードを修正してmsgboxがポップアップするように助けてくれたら分かりますか?そのコード行だけを使用してバットファイルを実行すると、エラーメッセージが表示されますが、ネットワークコードに追加しようとすると動作しません。

答えて

2

パラメータ-w 1800000は、1800000ミリ秒30分)、ホストに届かないと失敗します。

十分な状態で30分待つと、メッセージボックスが表示されます。実際には、pingが成功すると、wscriptコマンドを呼び出す行が条件なしで実行されるため、これも表示されます。条件errorlevel 1でのみ実行したいコマンドが複数ある場合は、それらを括弧で囲む必要があります。

  • とコードだけpingが
  • に失敗した場合にのみ、あなたはエラーレベルをリセットする必要はありません表示メッセージボックス
  • ピングに10秒のタイムアウトを使用する適応します。それは
  • がping間に10秒の
  • 使用待機期間が計算ressources

IPが到達することはできませんしながら、あなたがそれを実行するとメッセージボックスが表示される前に、あなたは、10秒間待つ必要がを保存しようと 自動的に行われます。 ..私は、私は一度OKをクリックすると、メッセージボックスが再び表示されないことができますどのように任意のアイデアを働いた


@echo off 

:START 

REM Try to ping with timeout of 10 seconds 
ping 192.168.9.19 -n 1 -w 10000 > nul 2>&1 

REM When ping fails, kill excel and show messagebox 
if errorlevel 1 ( 
    taskkill /F /IM excel.exe > nul 2>&1 
    wscript "C:\Users\James.Jayesuria\Desktop\MsgBox.vbs" 
) 

REM Wait 10 seconds between ping attempts 
Timeout /t 10 > nul 2>&1 

GOTO START 
+0

感謝。 –

+0

@StanJxファイル内に可変値を使用します。ファイルの先頭に0を設定します。メッセージを表示した後、変数をチェックして、変数が0か1かを確認してください。バッチファイルに関する良いチュートリアルです。すべての章を読む:http://steve-jansen.github.io/guides/windows-batch-scripting/part-1-getting-started.html – NineBerry