iT邦幫忙

4

cmd 如何把查詢到的資料放進變數?

v60i 2018-08-06 11:11:5535629 瀏覽

ipconfig | find /i "IPv4"
這個指令可以找到IPv4,請問該如何把找到的IPv4 的"IP"放進變數裡

之後只要ECHO 某個變數就可以得到當時紀錄的IP字串?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
4
最佳解答

這樣…

FOR /F "delims=: tokens=2" %a in ('ipconfig ^| find "IPv4"') do set _IPAddress=%a
ECHO %_IPAddress%
看更多先前的回應...收起先前的回應...
v60i iT邦新手 4 級 ‧ 2018-08-06 14:28:53 檢舉

請教大大delims=: tokens=2 是甚麼意思呢?

v60i iT邦新手 4 級 ‧ 2018-08-06 14:47:50 檢舉

謝謝大大的幫忙

v60i iT邦新手 4 級 ‧ 2018-08-06 15:04:21 檢舉

謝謝大大的幫忙

kksugsay
請問

FOR /F "delims=: tokens=2" %a in ('ipconfig ^| find "IPv4"') do set _IPAddress=%a
ECHO %_IPAddress%

上面這行指令,單獨在命令提示字元底下執行都正常

但寫入批次檔內 都會出現

D:>ip
這個時候不應有 a。
D:>FOR /F "delims=: tokens=2" a
D:>

這樣該怎麼修正

自問自答 , 改成這樣就可以了
只是搞不懂批次檔為什麼 %a不行, 要%%a

但是在命令提示字元底下執行 只能用%a ,用%%a不行

FOR /F "delims=: tokens=2" %%a in ('ipconfig ^| find "IPv4"') do set _IPAddress=%%a
ECHO %_IPAddress%

問錯人了,沒在寫bat shell,所以不是很熟…
只是搞不懂批次檔為什麼 %a不行, 要%%a,應該是避免跟其他情況混淆吧,畢竟bat裡可以寫的很複雜,命令提示字元底下就只有幾行,所以可以省略%

請問如果是一台電腦有兩個IP呢? 如何讓兩個IP變成個別的變數?

1
echochio
iT邦高手 1 級 ‧ 2018-08-06 11:33:31
C:\Users\IT>ipconfig | find /i "IPv4" > D:\test\test.txt

C:\Users\IT>set /p NEWVAR=<D:\test\test.txt

C:\Users\IT>echo %NEWVAR%
   IPv4 位址 . . . . . . . . . . . . : 192.168.1.100

C:\Users\IT>

只是不知為啥不放到 檔案內比較簡單 .......

v60i iT邦新手 4 級 ‧ 2018-08-06 14:29:18 檢舉

這個方法也不錯 謝謝大大指導

感謝大大 最近剛好要用到抓IP

1
froce
iT邦大師 1 級 ‧ 2018-08-06 15:43:47

powershell比較直觀。

$a = ipconfig | Select-String "IPv4"
Write-Host($a)
0

我是知道如何查,但是要記錄的話,是不是這樣?

FOR /F "delims=: tokens=2" %%a in ('ipconfig ^| find "IPv4"') do set =%%a

然後要拎出變數,應該是這樣

echo %_IPAddress%

然後裡面的IPAddress是變數,可以改的。
不過你要就全部改,要就全不改

我要發表回答

立即登入回答