現在、以下の 1 番目のコマンドを使用して DNS サーバーから IP アドレスを取得できます。ただし、一度に 1 つの DNS サーバーを入力してコマンドを実行するのは面倒です。以前、これを実行してみましたfor /F %i in (dns.txt); do nslookup %i; > ips.txt;
が、うまくいきました。ただし、同じ概念を以下のコマンドに適用しようとしています。テキスト ファイルから DNS アドレスを解決し、IP アドレスを変換して、結果を新しいテキスト ファイルに出力するにはどうすればよいですか?
1つのDNSからIPアドレスにのみ機能します
for /f "skip=4 usebackq tokens=2" %a in (`nslookup somedns.com`) do echo %a > ips.txt
答え1
エラーは>
演算子にあると思います。これは実際にはファイルを切り捨ててから出力をファイルに書き込みますips.txt
が、ループ状態になり、毎回ファイルを切り捨てます。>>
代わりに演算子を試してください。
for /f "skip=4 usebackq tokens=2" %a in (`nslookup somedns.com`) do echo %a >> ips.txt
編集: ファイルをループして各 DNS ホストの IP アドレスを取得するには、次のようにします。
for /f "tokens=*" %%A in (yourhostsfile.txt) do nslookup %%A >> ips.txt