我有一個程序,我在其中運行nslookup,然後將它們存儲到兩個不同的文件中,一個包含IP,一個只有nslookup的輸出。爲了將我對nslookup的調用減半,我想調用它一次,將它存儲在一個變量中,然後寫入這兩個文件。但是,一個簡單的商店不起作用。從一個命令存儲返回到一個bat文件中的變量
set val=nslookup %ip%
顯示器
nslookup 127.0.0.1
和未運行它的結果。
我發現其中一種方法,這是
nslookup %ip% | find "Name"> tempFile
set /P result=<tempFile
,但我現在寫一個文件,然後讓值回。爲了這個成本,我不妨叫nslookup兩次。它也要求我選擇一條線(這次對我來說很好,但對於其他情況可能不起作用)。
我還使用了循環招
for /f "delims=" %%a in ('nslookup %ip% ^| find "Name"') do set name=%%a
嘗試,但這隻返回的最後一行或一條線我發現指定。由於沒有臨時文件,但仍比上一個例子好,但仍不完善。
所以我的問題是如果有一些更好的方法來存儲從命令返回值到變量。
編輯: 考慮
nslookup 127.0.0.1
返回
Server: fake.com
Address: 0.0.0.0
Name: localhost
Address: 127.0.0.1
現在,我要的是名稱,因此返回一行適用於我目前的批處理文件。但是,如果我還需要知道服務器,所以我想
for /f "delims=" %%a in ('nslookup 127.0.0.1') do set returnVal=%%a
echo %returnVal%
顯示
Server: fake.com
Address: 0.0.0.0
Name: localhost
Address: 127.0.0.1
在那裏,現在它只顯示
Address: 127.0.0.1
鑑於輸出是兩條線(至少)什麼樣的信息是你想提取?一個例子會很好。 – Magoo 2013-04-23 15:02:38