[Batch] zmiana wartości zmiennej w pliku txt

0

Witajcie,

Mam swój plik .bat z komendą która wyciąga mi konkretnie moje aktualne ipv4. Chciałbym przekierować samo ip czyli 192.168.0.1 do pliku txt który istnieje i wpisać ta wartosc w tym pliku, konkretniej w linii 23. Ma to mniej więcej byc tak:
Ipv4 = 192.168.0.100

23 linijka w pliku : ip= 192.168.1.1

Chce aby za pomocą pliku .bat przepisać wartość ipv4 do pliku txt w linii 23.

0

No właśnie chciałem uniknąć języków wysokiego poziomu, potrzebuje taki pliczek na już A nie mam żadnego środowiska pod ręką, A Internet też za słaby na te chwilę żeby cokolwiek zaciągnąć sensownego.. ok, jak mówisz że męka to chyba sobie daruję chociaż wolałbym właśnie taki "szybki" skrypt zrobić

0
@echo off
set ip=192.168.0.100
sed -r -i "s/^ip= ([0-9]+\.){3}[0-9]+$/Ipv4 = %ip%/g" plik.txt

Ale do tego potrzebujesz stream editor (sed) ze strony GnuWin

0

Tylko chce pobrać wartość ipv4 komendą ipconfig. Ta metoda wyświetli mi linię mniej więcej taka:
IPv4 Adress 192.168.0.100

I chce sam adres czyli 192.168.0.100 przepisać bezpośrednio do pliku .txt w linii 23. Natomiast ta linia 23 posiada taki zapis :
Server ip = xxx.xxx.xxx.xxx

chce aby wartość z ipconfig została wklejona poprzez nadpisanie konkretnie tej wartości która widnieje po równa się w linii 23...

0

Co w sytuacji, gdy masz wiele interfejsów?

Np. będąc jednocześnie podłączonym przez kabel oraz wifi, masz dwa IP.

0

Owszem, tu masz rację natomiast to będzie stosowane wyłącznie przez komputery korzystające z sieci wi-fi. Dlatego nie ma potrzeby rozdzielenia i sprawdzania który adres ip jest obecnie używany. W skrócie ten skrypt ma ułatwić ludziom którzy nie ogarniaja sprawdzenia jakie ip obecnie ma ich pc i wpisania go do odpowiedniego pliku..

Proszę tylko o nakierowanie w jaki sposób mogę to wykonać zwykłym plikiem .bat

0

PowerShell:

Test-Connection -ComputerName (hostname) -Count 1  | Select IPV4Address

Co nie zmienia faktu, że zwyczajne wpisanie ipconfig, tudzież ifconfig będzie o wiele szybszym rozwiązaniem zakładając, że urządzenia będą korzystać tylko z jednego interfejsu sieciowego.

0
@echo off
for /f "delims=: tokens=2" %%i in ('ipconfig ^| findstr IPv4') do (
sed -r -i "23s/ ([0-9]+\.){3}[0-9]+/%%i/" plik.txt
)

1 użytkowników online, w tym zalogowanych: 0, gości: 1