ここに、いくつかのコンピュータ名を含むテキストファイルがあるとします(各行== 1名):
computerA
computerB
computerC
...
これらすべてのコンピューターにpingするバッチファイルを作成することはできますか?そして、実際にはpingは大きな出力です。 time
やその他の情報は必要ありません。到達可能かどうかを知りたいだけです。何か案は?
それは今働いています!私のバッチファイルにping.bat
とpingもコマンドなので、うまくいきませんでした。バッチファイルの名前を変更したところ、すべて問題なく動作しました。
これを試して:
@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" ' )
を使用します
@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]
あなたが見てみたいかもしれない代替手段は、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の定数を置き換えると、次のようになります:)
私が開発したツール-ccmd-を使用して同様のタスクを支援することができます。これは、いくつかのターゲットに対して任意の端末コマンドを実行します。ターゲットは次のようなcsvテキストファイルで指定できます。
#これはコメント行です
#target、description、command(デフォルト-ping)
8.8.8.8
1.1.1.1
コマンド{target}の下の#inは8.8.4.4に置き換えられます
8.8.4.4、google DNS、ping -n 1 -w 500 {target}
192.168.1.0/30、私のサブネット
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/フォルダーに保存されます。
設定ファイルを使用してpingするIPを設定し、最大12のcmdウィンドウを作成して画面に並べて配置するpingツールを作成しました。各ウィンドウのタイトルには、構成ファイルの説明も含まれています。
画面サイズを自動検出しますが、現在サポートしているのは1920x1080と1600x900のみです。ただし、手動でさらに解像度を作成することもできます。詳細については、credits.txtを参照してください。