讀取剛剛寫入文件的第一行到一個變量使用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
評估爲地址而沒有的領先空間。
非常感謝!我得到了我想要的東西! – Kondax
還有一件事,與我打印 「IP地址............:100.100.100.223」 ,我可以以某種方式改變它只有 「100.100.100.223」 – Kondax
請看我的更新。 –