iT邦幫忙

1

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

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

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

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

2
最佳解答

這樣…

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裡可以寫的很複雜,命令提示字元底下就只有幾行,所以可以省略%

1
echochio
iT邦新手 2 級 ‧ 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)

我要發表回答

立即登入回答