Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Powershell String-Verarbeitung

Empfohlene Antworten

Veröffentlicht

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

Eventuell über [system.String]::Substring(intStart, intChars).

könntest du das vielleicht ein bisschen ausführen? das hilft mir so nicht wirklich weiter...

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?

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?

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 von elyon
Substring vergessen

Hat mir sehr weitergeholfen , vielen Dank :)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.