Windows バッチファイル

Windows バッチファイル

ホストが到達可能かどうかを確認する必要がある作業のためにバッチ ファイルを作成しています。実行するコマンドの実行時に受信したすべてのエラー コードをログに記録する必要があります。

具体的には、ping、traceroute、arp コマンドを使用する必要があります。しかし、これらのコマンドを実行するためのさまざまなエラー レベルが見つかりません。このような Windows コマンドのエラー レベルまたはエラー コードはどこで確認できますか?

また、ping と traceroute を別々に使用するのではなく、pathping を使用する方が良いでしょうか?

答え1

%ERRORLEVEL% のバッチ ソリューション

@Echo off
SET LOGFILE=MyLogFile.log
call :Logit >> %LOGFILE% 
exit /b 0

:Logit
:: PING 192.168.1.1 -n 1 | FIND /I /V "unreachable" | FIND /I "Reply from "

基本的に、メソッドの出力:Logitを にリダイレクトしますLOGFILEexitコマンドは、 を実行した後にバッチが終了するようにするためのものです:Logit


シンプルなtry-catchを使ったPowerShellソリューションを紹介します

Try {
    # Try to reach host 
    Test-Connection -Source "Server02", "Server12", "localhost" -ComputerName "Server01"    
}

Catch {

    # Catch the exception

    $_ | Out-File C:\errors.txt -Append

    # You can use this too but not both

    $exception = $_.Exception.Message
    Out-File -FilePath 'C:\myscript.log' -Append -InputObject $exception
}

からこれそしてこれ質問です。


パワーシェル

テスト接続に関する Microsoft ドキュメント

PowerShell でのエラー処理

関連情報