我有下面的代碼返回給定服務器的主機名和IP地址。我怎麼能只有主機名作爲輸出?如何從使用批處理文件的輸出中獲取特定行?
FOR /F %%i in (servers.txt) do FOR /F "skip=3 delims=: tokens=2 usebackq" %%j in (`nslookup %%i`) do @echo %%j >> Devices_With_IP.txt
我有下面的代碼返回給定服務器的主機名和IP地址。我怎麼能只有主機名作爲輸出?如何從使用批處理文件的輸出中獲取特定行?
FOR /F %%i in (servers.txt) do FOR /F "skip=3 delims=: tokens=2 usebackq" %%j in (`nslookup %%i`) do @echo %%j >> Devices_With_IP.txt
假設你的機器使用英語:產生
FOR /F %%i in (servers.txt) do FOR /F "delims=: tokens=2" %%j in (
'nslookup %%i ^| find "Name:"'
) do @echo %%j >> Devices_With_IP.txt
嘗試使用您nslookup
的輸出findstr
命令只得到含有「名稱」行。
FOR /F %%i in (servers.txt) do FOR /F "tokens=2 usebackq delims=: " %%j in (`nslookup %%i ^| findstr Name`) do @echo %%j >> Devices_With_IP.txt
請注意,我還重新安排在第二循環中的/F
條件,以包括空間作爲deliminator,這消除了輸出前的前導空格。
使用find
命令,而不是findstr
-
FOR /F %%i in (servers.txt) do FOR /F "tokens=2 usebackq delims=: " %%j in (`nslookup %%i ^| find "Name"`) do @echo %%j >> Devices_With_IP.txt
剛剛意識到使用發現的,而不是FINDSTR使得這個(幾乎)完全一樣dbenham的答案。
無輸出。 – PeanutsMonkey
@PananutsMonkey,我只是將重定向添加到您的'Devices_With_IP.txt',然後才輸出到終端。這是問題嗎? – unclemeat
不是。我也有。沒有顯示結果,也沒有生成文件。 – PeanutsMonkey