đọc dòng đầu tiên tập tin chỉ bằng văn bản của vào một biến bằng cách sử dụng lệnh SET /P
, sau đó ghi đè lên tập tin với dòng rằng việc sử dụng ECHO
:
ipconfig | find "IP Address" > \File.txt
< \File.txt SET /P first_ip= ECHO %first_ip%> \File.txt
UPDATE (trong câu trả lời cho ý kiến):
Để trích xuất chỉ là địa chỉ IP, bạn có thể sử dụng một vòng lặp FOR /F
như thế này:
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 )
Một vòng lặp FOR /F
cho phép bạn xử lý văn bản (một tập tin hoặc một chuỗi chữ) từng dòng, chia mỗi dòng vào các lĩnh vực (hoặc mã thông báo) dựa trên (các) dấu phân cách được chỉ định. Bạn có thể đọc thêm về lệnh này trong trợ giúp được tích hợp sẵn (FOR /?
). Tôi sẽ chỉ thêm rằng trong trường hợp này phần được xử lý là một chuỗi chữ (giá trị là first_ip
), dấu phân tách được đặt thành :
và biến vòng lặp (%%I
) nhận được mã thông báo 2 nd, là một địa chỉ IP .
Lưu ý rằng khoảng cách giữa :
và IP được giữ nguyên, tức là nó trở thành một phần của mã thông báo ( 100.100.100.223
) và do đó, cũng được ghi vào tệp. Nếu bạn không phải là rất hạnh phúc về điều đó, bạn có thể sử dụng một chương trình con để thoát khỏi không gian, như thế này:
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
Khi chương trình con được gọi là (CALL :MyEcho %%I
), các đối số được truyền cùng với không gian hàng đầu . Nhưng khi xử lý dòng lệnh của chương trình con, không gian đó không còn được xem như là một phần của giá trị, vì đối số không được trích dẫn và do đó trình phân tích cú pháp chỉ nhìn thấy một đối số được tách biệt với tên có hai dấu cách. Do đó, %1
trong chương trình con đánh giá đến địa chỉ mà không cần không gian hàng đầu.
Nguồn
2012-12-13 09:36:48
Cảm ơn bạn rất nhiều !!! tôi đã chính xác những gì tôi muốn! – Kondax
Một điều nữa, với điều này tôi in "Địa chỉ IP........:: 100.100.100.223" , tôi có thể thay đổi nó thành chỉ "100.100.100.223" – Kondax
Vui lòng xem cập nhật của tôi . –