PowerShell Script: Ausgabe soll keinen Pfad angeben
Hallo liebe Leute,
ich bin noch sehr neu im Umgang mit PowerShell und habe ein kleines Problem bzw. eine kleine Anpassung vorzunehmen.
Ich schreibe ein Script, welches eine bestimmte .txt Datei falls vorhanden löschen soll.
Anschließend eine ausführbare Datei starten soll, welche dann eine neue .txt Datei erzeugt mit Inhalten (logischerweise haha).
Ich möchte jetzt nur bestimmte Zeilen aus dieser neu erzeugten .txt Datei Ausgeben.
Es sollen alle Zeilen, die mit einem 'S' anfangen und worauf hinten dran noch eine Zahlenfolge folgt, ausgegeben werden.
Die Zahlenfolge steht immer in "".
Die Information mit der Zahlenfolge ist wichtig, da in der Datei auch Zeilen mit S anfangen die unwichtig sind hinter denen keine Zahlenfolge steht.
Der Inhalt dieser neu erzeugten .txt sieht zum Beispiel folgendermaßen aus:
Y
S
X
S "Zahlenfolge1"
Y
S
X
S "Zahlenfolge2"
Y
S
X
S "Zahlengolge3"
Ich möchte jetzt eben in meiner Ausgabe nur drei Zeilen haben, die mit 'S' anfangen und hinten dran noch eine "Zahlenfolge" haben.
Bisher habe ich das hier.
Das klappt auch, allerdings wird jedes Mal der Pfad vorher noch mit angegeben, der nicht gerade kurz ist und ich würde es gerne so haben, dass jede Zeile die ausgegeben wird alleine in einer Zeile steht. Also die Formatierung habe ich auch noch nicht ganz hinbekommen.
Insgesamt sieht mein Script so aus, falls das relevant sein sollte:
Kann mir jemand sagen, wie ich in meiner Ausgabe nicht wiederholt meinen Pfad mit ausgebe?
Und ich es am besten noch formatieren kann, weil "| Format-Table" hat nicht funktioniert.
ich bin noch sehr neu im Umgang mit PowerShell und habe ein kleines Problem bzw. eine kleine Anpassung vorzunehmen.
Ich schreibe ein Script, welches eine bestimmte .txt Datei falls vorhanden löschen soll.
Anschließend eine ausführbare Datei starten soll, welche dann eine neue .txt Datei erzeugt mit Inhalten (logischerweise haha).
Ich möchte jetzt nur bestimmte Zeilen aus dieser neu erzeugten .txt Datei Ausgeben.
Es sollen alle Zeilen, die mit einem 'S' anfangen und worauf hinten dran noch eine Zahlenfolge folgt, ausgegeben werden.
Die Zahlenfolge steht immer in "".
Die Information mit der Zahlenfolge ist wichtig, da in der Datei auch Zeilen mit S anfangen die unwichtig sind hinter denen keine Zahlenfolge steht.
Der Inhalt dieser neu erzeugten .txt sieht zum Beispiel folgendermaßen aus:
Y
S
X
S "Zahlenfolge1"
Y
S
X
S "Zahlenfolge2"
Y
S
X
S "Zahlengolge3"
Ich möchte jetzt eben in meiner Ausgabe nur drei Zeilen haben, die mit 'S' anfangen und hinten dran noch eine "Zahlenfolge" haben.
Bisher habe ich das hier.
Write-Host (Select-String -Path $txt_Datei -Pattern 'S "')
Das klappt auch, allerdings wird jedes Mal der Pfad vorher noch mit angegeben, der nicht gerade kurz ist und ich würde es gerne so haben, dass jede Zeile die ausgegeben wird alleine in einer Zeile steht. Also die Formatierung habe ich auch noch nicht ganz hinbekommen.
Insgesamt sieht mein Script so aus, falls das relevant sein sollte:
$txt_Datei = "Absoluter Pfad"
#löschen der möglicherweise vorhandenen txt Datei
IF (Test-Path $txt_Datei)
{
Remove-Item -Path $txt_Datei
Write-Host "Vorhandene Datei wurde gelöscht."
}
#aufrufen der ausführbaren Datei, die wiederum neue txt Datei erstellt
Start-Process -FilePath "Ist in absoluten Pfad angegeben"
#Zeilen aus neuer txt Datei ausgeben
Write-Host (Select-String -Path $txt_Datei -Pattern 'S "')
Kann mir jemand sagen, wie ich in meiner Ausgabe nicht wiederholt meinen Pfad mit ausgebe?
Und ich es am besten noch formatieren kann, weil "| Format-Table" hat nicht funktioniert.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 2935252448
Url: https://administrator.de/forum/powershell-script-ausgabe-soll-keinen-pfad-angeben-2935252448.html
Ausgedruckt am: 19.05.2025 um 19:05 Uhr
4 Kommentare
Neuester Kommentar
Servus @THaRaSR, willkommen auf Administrator.de!
Und wenn du bei Select-String bleiben willst einfach die "Line" Property expandieren, denn Select-String liefert wie so oft in Powershell ein Object und keinen String als Ergebnis.
Mittels Get-Content lässt sich das auch ohne ein where-object noch etwas vereinfachen
Grüße Uwe
Und wenn du bei Select-String bleiben willst einfach die "Line" Property expandieren, denn Select-String liefert wie so oft in Powershell ein Object und keinen String als Ergebnis.
Select-String $txt_Datei -Pattern '^S "' | select -Expand Line
(Get-Content $txt_Datei) -match '^S "'
Grüße Uwe