これは状況です。私は、非常に大きなテキストファイルには、多くの異なるIPアドレスが含まれています。これらのIPアドレスのすべてのホスト名を解決するために、バッチファイルを作成するか、ジョブを完了させるものを作成します。pingからホスト名を取得し、結果をテキストに保存します
現在、の場合、IPアドレスは1行に1つずつaddresses.txtというファイルに格納されています。
@echo off
for /f "delims=" %%a in (addresses.txt) do ping -a %%a >> PING_LOG.txt && (echo %%a Passed) || (echo %%a Failed)
pause
これは大丈夫動作しているようです:
は、私はまた、次のコードでバッチファイルを持っています。私のテキストファイルには、pingの結果がすべて入っています。 私は私の出力ファイルに書き込まれるように、私はpingを実行アドレスとホスト名を欲しい:ホスト名、回答、統計情報、パケットなどここで
が問題です。私はこれを達成できる方法はありますか?バッチコマンドを介して?他の手段(例えば、出力ファイルを取り出し、それを実行して情報を取得するなど)によって、私はまだ私が把握できるものを見たいと積極的に努力していますが、どんな助けも非常に高く評価されます。
(最終的な目標は、Excelスプレッドシートのサイド・バイ・サイドにホスト名とアドレスを配置することで、手動でそれをやって彼らの何千もの文字通りある考えるとひどい音)
MY FINAL SOLUTION
@echo off
setlocal EnableDelayedExpansion
for /f "tokens=*" %%A in (addresses.txt) do (
set "_res=%%A"
for /f "tokens=2" %%B in ('^(nslookup %%A ^) ^| findstr /c:"Name:"') do set "_res=!_res!, %%B"
echo !_res! >> LOG.txt
echo !_res!
)
endlocal
助けのためのドミトリーと重力のおかげで^
次は、私がデータを取って、スプレッドシート(ただ一つの列)にそれを落としました。私は、各セルを見て、デリミタとしてコンマを使って文字列配列にデータを分割し、結果の各文字列を横に並べて(ip | name)並べるマクロスクリプトを書いた。
を生成するIPアドレスへのpingをしません(通常は)ホスト名を返しますあなたのためにそのIPアドレスの。 'nslookup'の機能は、あなたが必要とするものです。しかし、あなたは、" ...私のファイルをすべての結果で満たすことができます。** hostname ** ... "_人々は 'ping'の結果でホスト名を参照していますが、ここでの使用はお勧めしません。 – gravity
@gravity: 'ping -a'は通常そうです。 – Stephan
@gravity -aは必要な情報を得ていましたが、正しいですが、nslookupが優れています。私はそれを完全に忘れてしまった。ドミトリーからnslookupを使って解決策を書き直してみようと思います。私が思いつくものは何でも投稿します。 – Thomas