読者です 読者をやめる 読者になる 読者になる

或阿呆のブログ

Pythonを好んで使っているプログラマです。Ruby,Perl,PowerShell,VBAなどでもたまに書いています。おバカなことが大好きです。

いい加減MS-DOS使うのやめてWindowsPowerShell使おうよ-pingが通った端末にだけ処理をする

Pingが返ってきた端末にだけ処理を行いたい。

PowerShellのコマンドレットで便利だなと思ったのが、Test-Connection。DOSだとPingに相当するのかな?コマンドって、接続出来ない端末をしていして実行したりするとエラーが出るものが少なくない。なので、ping通ったらという条件を付けて実行したいときはよくある。だが、DOSだとそのロジックを実装するのがものすごい面倒。

PowerShellのTest-Connectionは痒いところに手が届く機能だ。

こんな風にして使える。

テストコード

if(Test-Connection localhost -Quiet)
{
    Write-Output "Hello!"
}
else
{
    Write-Output "Good bye!"
}

実行結果

PS>C:\Users\oneshot\Documents\WindowsPowerShellテスト\test-rt.ps1
Hello!

めっちゃくちゃ便利じゃないですか?pingで帰ってきた文字列をシコシコ解析する必要もない。なんせ、Test-ConnectionにQuietオプションを付加すると、boolean値で返却してくれるんで。

PS>Test-Connection localhost -Quiet
True

PS>Test-Connection nothing -Quiet
False

ほぉらね。これはハマりますわ。