テキストファイル内のすべてのIPアドレスをpingしますか?


9

ここに、いくつかのコンピュータ名を含むテキストファイルがあるとします(各行== 1名):

computerA
computerB
computerC
...

これらすべてのコンピューターにpingするバッチファイルを作成することはできますか?そして、実際にはpingは大きな出力です。timeまたはその他の情報は必要ありません。到達可能かどうかを知りたいだけです。何か案は?


それは今働いています!問題はフォックスが言ったようで、バッチファイルにping.batと名前を付け、pingもコマンドなので、これはうまくいきませんでした。バッチファイルの名前を変更したところ、すべて問題なく動作しました。


1
見てfor、コマンド、特にファイルの解析モード。
Damien_The_Unbeliever 2013

回答:


12

これを試して:

@echo off
for /f "delims=" %%a in (computerlist.txt) do ping -n 1 %%a >nul && (echo %%a ok) || (echo %%a failed to respond) 
pause

あなたは、スペースの代わりにまたは奇数文字でファイル名またはパスを使用する必要がある場合(computerlist.txt)に使用( ' type "c:\folder\computer file.txt" ' )


cmdがすぐにポップアップし、その後消えてしまいました。最後に一時停止またはスリープしても、何も出力されません。
サビサビ

OK応答を含む上記の編集済みコードを試してください。

まったく変化はありません、これは奇妙です。あなたがそこに投稿したのとまったく同じコードをコピーします(ファイル名を変更します)。任意の出力。私はwin XPを使用していますが、これは問題でしょうか?
サビサビ

パス\ファイル名にはスペースが含まれている可能性があります。(computerlist.txt)の代わりに 'type "c:\ folder \ computer file.txt"')を使用

3
それはあなたの間違いです。バッチファイルに名前を付けるときは、コマンドの名前を使用しないようにしてください。あなたの場合、バッチファイル内のpingコマンドは、pingコマンドではなく、pingバッチファイルを実行しています。

4
@Echo OFF

For /F "Usebackq Delims=" %%# in (
    "List.txt"
) do (
    Echo+
    Echo [+] Pinging: %%#

    Ping -n 1 "%%#" 1>nul && (
        Echo     [OK]) || (
        Echo     [FAILED])
)

Pause&Exit

出力:

[+] Pinging: www.google.com
    [OK]

[+] Pinging: ffff
    [FAILED]

.batを開始すると、出力[+] Pinging:computerAが表示されますが、ウィンドウが表示されなくなります。
sabisabi

いくつかの変更を加えずに、彼は私のスクリプトをそのまま読み上げましたか?
ElektroStudios 2013

ファイルの名前を変更しましたが、それだけです
サビサビ

@sabisabi:既存のコマンドプロンプトから「手動で」バッチファイルを開始すると、エラーメッセージを読むことができます。テストする必要があるバッチファイルを「ダブルクリック」しないでください。
a_horse_with_no_name 2013

@a_horse_with_no_name cmd(ping.bat)を使用して.batファイルを開始した場合->新しいウィンドウがなく、cmdがメッセージなしで閉じます
sabisabi

1

あなたが見てみたいかもしれない代替手段は、PowerShellを使うことです:

cls;
ForEach ($targetComputer in (Get-Content C:\installs\computerlist.txt)) {
    if (Test-Connection -ComputerName $targetComputer -Count 1 -Quiet) {
        "$targetComputer - Ping OK"
    } else {
        "$targetComputer - Ping FAIL"
    }
}

C:\ Installs \ ComputerList.txtの定数を置き換えると、次のようになります:)

ここに画像の説明を入力してください


0

設定ファイルを使用してpingするIPを設定し、最大12個のcmdウィンドウを作成して画面に並べて配置するpingツールを作成しました。各ウィンドウのタイトルにも説明があり、構成ファイルにもあります。

画面サイズを自動検出しますが、現在サポートしているのは1920x1080と1600x900のみです。ただし、手動でさらに解像度を作成することもできます。詳しくはcredits.txtをご覧ください。

HellFires Pingtest v1.0


0

私が開発したツール-ccmd-を使用して同様のタスクを支援することができます。これは、いくつかのターゲットに対して任意のターミナルコマンドを実行します。ターゲットは、csvテキストファイルで次のように指定できます。
#this is a comment line
#target、description、コマンド(デフォルト
-ping )8.8.8.8
1.1.1.1
#in belowコマンド{target}は8.8.4.4に置き換えられます
8.8.4.4、google DNS、ping -n 1 -w 500 {target}
192.168.1.0/30、myサブネット
bbc.com、これはbbcニュースサイトです

上記のファイルをname.txtに保存し、スクリプトに-sオプションを指定します。他のコマンドが指定されていない場合、デフォルトでpingコマンドが実行されます。
それを実行してください:
ccmd.exe -s name.txt -b 10 -c 30
はその出力を明らかにします: https : //i.stack.imgur.com/23zxQ.png

スクリプトはpythonで書かれていますが、ccmd.exeバージョンがあり、Windowsで直接実行できます。デフォルトでは、詳細コマンドは./LOG/フォルダーに保存された出力をログに記録します。

ソース:https : //github.com/apraksim/ccmd

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.