Schreiben Sie die lokale ip-Adresse in eine Textdatei mit batch-Datei
Ich möchte eine batch Datei erstellen, das schreibt die lokale IP-Adresse in eine txt-Datei. Wenn ich eine batch Datei mit diesem code (Datei-Pfad falsch ist, aber das ist nicht das problem):
ipconfig | find "IP Address" > \File.txt
Bekomme ich die ganzen windows-IP-Konfiguration (ich änderte einige zahlen und Sachen mit xxx zu, dass nicht alle info)
IP Address. . . . . . . . . . . . : 100.100.100.223
IP Address. . . . . . . . . . . . : 192.xxx.xxx.xxx
Möchte ich in eine Datei schreiben nur 100.100.100.223
.
Ich bin neu in der batch-Dateien und ich wirklich suchte eine Menge und ich bin wirklich verwirrt. (vielleicht Suche ich mit den falschen keywords).
Vergessen zu sagen, ich bin mit Windows XP (Weil einige der Antworten, funktioniert nicht auf XP).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lesen Sie die gerade geschriebene Datei die erste Zeile in eine variable mit der
SET /P
Befehl, dann überschreiben Sie die Datei mit der Zeile mithilfeECHO
:UPDATE (Antwort auf Kommentare):
Extrahieren Sie die IP-Adresse, könnten Sie ein
FOR /F
- Schleife wie diese:Einen
FOR /F
- Schleife können Sie für die Verarbeitung von text (eine Datei oder ein string-literal) Zeile für Zeile, Spalten jede Zeile in Felder (oder Token) basierend auf dem angegebenen Trennzeichen(s). Lesen Sie mehr über diesen Befehl in der integrierten Hilfe (FOR /?
). Ich werde nur hinzufügen, dass in diesem Fall die verarbeitete Stück ist ein string-literal (Wert derfirst_ip
), wird das Trennzeichen festgelegt:
, und die loop-variable (%%I
) empfängt die 2nd - token, die eine IP-Adresse.Beachten Sie, dass der Raum zwischen
:
und die IP beibehalten wird, D. H. es wird ein Teil des Tokens (100.100.100.223
) und daher wird in die Datei geschrieben, auch. Wenn Sie nicht sehr glücklich darüber, Sie könnte verwenden Sie ein Unterprogramm, um loszuwerden, der Raum, wie diese:Wenn das Unterprogramm aufgerufen wird (
CALL :MyEcho %%I
), das argument übergeben wird, zusammen mit den führenden Leerzeichen. Aber bei der Verarbeitung der subroutine der Befehl Linie, dass der Raum nicht mehr länger als Teil des Wertes, weil das argument nicht zitiert und so der parser sieht nur ein argument, getrennt von den Namen mit zwei Räumen. So ist die%1
im Unterprogramm wertet die Adresse ohne das führende Leerzeichen.Wenn Sie OK mit powershell, versuchen Sie dies:
Get-NetIPAddress | % { $_.IPAddress }
The term 'Get-NetIPAddress' is not recognized as the name of a cmdlet, function, script file, or operable program.
auf Win7. Aber ja, es gibt bessere Möglichkeiten zur Verfügung. Ich habe dazu diese Antwort vor langer Zeit, als ich dod nicht wissen, über die alternativen... die Aktualisierung der Antwort.Können Sie autohotkey.
Zur Message-box,
Oder wenn Sie möchten, in text-Datei-Benutzer -
Hilfreichen link. https://autohotkey.com/board/topic/45109-how-to-get-my-ip-address/