2012-12-13 141 views
7

我想創建一個將本地IP地址寫入txt文件的批處理文件。當我運行這段代碼的批處理文件(文件路徑是錯誤的,但是這不是問題):我得到了整個窗戶IP配置使用批處理文件將本地IP地址寫入文本文件

ipconfig | find "IP Address" > \File.txt 

(我改變了一些數字和東西用xxx不顯示所有信息)

IP Address. . . . . . . . . . . . : 100.100.100.223 

    IP Address. . . . . . . . . . . . : 192.xxx.xxx.xxx 

我想寫一個文件只100.100.100.223

我是新來的批處理文件,我真的搜索了很多,我很困惑。 (也許我在用錯誤的關鍵字搜索)。

忘記告訴我正在使用Windows XP(因爲一些答案在XP上不起作用)。

回答

6

讀取剛剛寫入文件的第一行到一個變量使用SET /P命令,然後覆蓋使用ECHO該行的文件:

ipconfig | find "IP Address" > \File.txt 
< \File.txt SET /P first_ip= ECHO %first_ip%> \File.txt 

UPDATE(在回答評論):

只提取IP地址,你可以使用一個FOR /F循環是這樣的:

ipconfig | find "IP Address" > \File.txt 
< \File.txt SET /P first_ip= 
FOR /F "delims=: tokens=2" %%I IN ("%first_ip%") DO ( ECHO %%I> \File.txt ) 

一個FOR /F循環允許您處理文本(文件或字符串文本)逐行分割每行到字段(或令牌)基於指定的分隔符。您可以在內置幫助(FOR /?)中閱讀有關此命令的更多信息。我只補充說,在這種情況下,處理後的塊是一個字符串文本(值爲first_ip),分隔符設置爲:,循環變量(%%I)接收到令牌,它是一個IP地址。

請注意,:與IP之間的空間被保留,即它成爲令牌的一部分( 100.100.100.223),因此也被寫入到文件中。如果你不是很高興的,你可以使用一個子程序擺脫空間的,就像這樣:

ipconfig | find "IP Address" > \File.txt 
< \File.txt SET /P first_ip= 
FOR /F "delims=: tokens=2" %%I IN ("%first_ip%") DO (
    CALL :MyEcho %%I 
) 
:: the following command is there merely to 
:: avoid running (into) the subroutine again 
GOTO :EOF :MyEcho ECHO %1> \File.txt 

當調用子程序(CALL :MyEcho %%I),參數與前導空格一起傳遞。但是在處理子程序的命令行時,該空間不再被視爲值的一部分,因爲該參數未被引用,因此解析器僅僅看到一個用兩個空格分隔的名稱。因此子程序中的%1評估爲地址而沒有的領先空間。

+0

非常感謝!我得到了我想要的東西! – Kondax

+0

還有一件事,與我打印 「IP地址............:100.100.100.223」 ,我可以以某種方式改變它只有 「100.100.100.223」 – Kondax

+1

請看我的更新。 –

0

如果你是使用PowerShell OK,試試這個:

powershell.exe -c "gwmi Win32_NetworkAdapterConfiguration | ? { $_.IPAddress -ne $null } | % {$_.ipaddress[0]}" 
+0

我在這裏有點困惑(我通常是新手),我也會檢查這一個,看看我會得到什麼!非常感謝。 – Kondax

+1

&off當然,您需要將輸出重定向到File.txt。沒有添加在我的代碼中。 – anishsane

+0

反正使用powershell時,爲什麼還要做可怕的解析?只需使用:Get-NetIPAddress | %{$ _。IPAddress}' –

6
for /f "tokens=2 delims=:" %%a in ('ipconfig^|find "IPv4 Address"') do (
set ip=%%a 
goto :BREAK 
) 

:BREAK 
echo %ip: =% >ip.txt 
+1

這非常有幫助!不僅僅是被標記爲「正確」的答案! – GavinWoods

相關問題