Veröffentlicht 20. Januar 201114 j Hallo zusammen, ich habe folgendes Problem. Ich habe eine txt-Datei, in welcher in jeder Zeile title=' ip-adresse' und host= Servername steht. In jeder Zeile ist dann natürlich eine unterschiedliche Ip-adresse und ein unterschiedlicher Servername. Zusätzlich dazu stehen in jeder Zeile noch weitere andere Informationen, die nicht benötigt werden. Ist es mit Hilfe der Powershell möglich nur bestimmte Passagen eines Strings ausgeben zu lassen? Also den Rest quasi auszuschneiden ( habe select-string ausprobiert, ohne jedoch das gewünschte Ergebnis erzielen zu können). Vielen danke schonmal. Lg homer123
20. Januar 201114 j könntest du das vielleicht ein bisschen ausführen? das hilft mir so nicht wirklich weiter...
20. Januar 201114 j Hallo Homer123, angenommen man hat diese Textdatei: title=' 10.204.12.31' host= SERVER001 title=' 10.204.12.32' host= SERVER002 title=' 10.204.12.33' host= SERVER003 Dann könnte man die IP und den Servernamen über folgenden Schnipsel auslesen: $txtFile = "C:\test.txt" #Definiere den Speicherort der Textdatei $txtContent = Get-Content $txtFile #Lese den Inhalt der Textdatei ein Foreach($row in $txtContent) { #Gehe jede Zeile durch $ip = $row.Substring(8,12) #IP steht an 8. Position und hat 12 Zeichen $servername = $row.Substring(32) #Servername steht ab 32. Position bis zum Ende } Voraussetzung hierbei ist, dass die Felder immer die gleiche Anzahl an Zeichen haben. Wenn dem nicht so ist, müsste man vorher z.B. über IndexOf die Position eines Trennzeichens ermitteln. Hilft dir das etwas weiter?
21. Januar 201114 j danke schonmal für deine Antwort. Das ist schonmal ein Anfang. Allerdings habe ich genau das Problem , dass die Anzahl der Zeichen und die Stelle in der Zeile unterschiedlich ist. kannst du das vllt mit IndexOf näher erläutern?
21. Januar 201114 j Hallo Homer123, ich versuchs: Foreach($row in $txtContent) { #Gehe jede Zeile durch #$row: "title='10.2.12.31' host= SERVER01" $firstIndex = $row.IndexOf("'") #Gibt die Position des ersten Hochkommata zurück - hier: 6 $secondIndex = $row.IndexOf("'",$firstIndex + 1) #Gibt die Position des ZWEITEN Hochkommata zurück, da erst "ab hinter dem ersten Hochkommata" gesucht wird. - hier auch: 20 $ip = $row.Substring($firstIndex, $secondIndex) #Schneide den Text zwischen den beiden Hochkommata aus. } Diese Methode ist zwar vielleicht nicht die Beste, erfüllte jedoch stets meine Zwecke. Am besten probierst Du es einfach nochmal aus und gibst die Werte $firstIndex und $secondIndex aus. Wenn Dir das immer noch nicht weiterhilft, wäre es vielleicht sinnvoll, wenn du einen Ausschnitt deiner Textdatei (sinngemäß) postest. Bearbeitet 21. Januar 201114 j von elyon Substring vergessen
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.