Ich habe Befehl folgende:Substring IP-Adresse mit einer Zeichenfolge Hinzufügen erzeugt Fehler, sondern arbeitet
$IP_start = $First.Substring(0, $First.LastIndexOf('.'))+ ".200"
$First
ist eine IP-Adresse, zum Beispiel 192.168.0.1
ich die 1 ändern wollen in die vierte octect in eine gibt mir 200.
Write-Output $IP_start
die korrekte IP-Adresse 192.168.0.200, aber zur gleichen Zeit bekomme ich folgende Fehler:
Ausnahme beim Aufrufen von "Substring" mit 2 Argument(en): "Die Länge darf nicht kleiner als 0 (null) sein. Parametername: length" In *ps1:31 Zeichen:3 + $IP_start = $First.Substring(0, $First.LastIndexOf('.'))+ ".200" + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : ArgumentOutOfRangeException
Übersetzung
Exception when calling "substring" with 2 arguments: "The length can not be less than zero. Parameter name: length" In * ps1: 31 characters: 3...
Ich denke, alles funktioniert gut, aber dass Fehlermeldungen stört mich.
// edit:
ein ip.txt Es gibt, in der jede Zeile wie ist "192.168.0.1; ABCDEF"
$txt = Get-Content ip.txt
$editline = foreach ($Data in $txt) {
$First, $Second = $Data -split ';' -replace '^\s*|\s*$'
$IP_start = $First.Substring(0, $First.LastIndexOf('.'))+ ".200"
Write-Output "modify ipaddr_first $IP_start"
}
$editline | Out-File "$output"
ersten $ ist daher "192.168.0.1" und $ Sekunde "ABCDEF".
Was ist das Ergebnis von $ First.LastIndexOf ('.') 'Für sich? Ich kann dein Problem nicht reproduzieren, damit etwas anders ist. LastIndex von gibt -1 zurück, wenn es nichts gefunden hat, das das Problem verursachen würde. Sie sagen uns, was $ zuerst ist, aber wir müssen raten, wie Sie es bevölkert haben. In jedem Fall würde ich sagen, verwenden Sie den '[ipaddress]' Typ, um mit diesem https://stackoverflow.com/questions/30061062/remove-first-octet-from-ip-address-with-regex-split/30067004# 30067004 – Matt
Der Teilstring ist für die Frage wichtig, daher sollte er im Titel belassen werden. Macht einfach ein schlechtes Verb – Matt
Welches Problem lösen Sie? Das Extrahieren einer Teilzeichenfolge einer IP-Adresszeichenfolge gibt Ihnen keine Netzwerk-ID (die von der Netzwerkmaske abhängt). –