realfilmkuh
Goto Top

Wie mit PowerShell eingelesenen Text als Variable deklarieren?

Hallo zusammen,

ich würde gerne mit Powershell einen Text einlesen und einen Teil davon als Variable deklarieren.

Wir kriegen von unseren Mitarbeitern automatisierte Emails.

In dieser Email steht folgender Beispiel Text.

blablablablablablaTEXTblablablablabla

blablablablablablaTEXTblablablablabla

Link zum Meeting:
htpps:URL_zum_Meeting.de/ret278te8ep2nek2endjkb2uidb2pd


Meeting Kennung:
Meeting-Kennung: 175 485 2524
Meeting-Passwort: f2433we218

blablablablablablaTEXTblablablablabla
blablablablablablaTEXTblablablablabla

blablablablablablaTEXTblablablablabla
blablablablablablaTEXTblablablablabla
blablablablablablaTEXTblablablablabla

der Aufbau der Email ist immer gleich, das was sich ändern sind nur die Werte dahinter:

Link zum Meeting:
htpps:
URL_zum_Meeting.de/ret278te8ep2nek2endjkb2uidb2pd

Meeting-Kennung: 175 485 2524
Meeting-Passwort: f2433we218


Mit dem Powershell Befehl get-content kann ich es einlesen, aber bei der Deklaration der Variablen scheitere ich.

Danke schon mal im Voraus face-smile

Content-Key: 1046629248

Url: https://administrator.de/contentid/1046629248

Printed on: April 24, 2024 at 07:04 o'clock

Member: SlainteMhath
SlainteMhath Jul 19, 2021 at 07:07:56 (UTC)
Goto Top
Moin,

ganz klar ist mir deine Frage nicht. Evtl.l meinst du
$inhalt=get.content -Path datei.txt
?

Damit wird der Inhalt von "datei.txt" in $inhalt gespeichert.

lg,
Slainte
Member: RealFilmKuh
RealFilmKuh Jul 19, 2021 at 07:17:59 (UTC)
Goto Top
Zitat von @SlainteMhath:

Moin,

ganz klar ist mir deine Frage nicht. Evtl.l meinst du
> $inhalt=get.content -Path datei.txt
> 
?

Damit wird der Inhalt von "datei.txt" in $inhalt gespeichert.

lg,
Slainte

Erst ein mal Danke für die Hilfe!

Ich möchte bestimmte Zeilen aus dem Text als Variable deklarieren, nicht den kompletten Text.

Beispiel: Mit dem Befehl get-content kann ich ja den Text einlesen, aber ich möchte das Meeting-Passwort: f2433we218 als Variable deklarieren.

Also $Meeting-Passwort: und den Wert: f2433we218 haben.

sowas wie select-string "Email.txt "-simplematch "Meeting-Passwort: "

Damit wenn ich $ Meeting-Passwort: eingebe/ aufrufe der Wert: f2433we218b erscheint.
Mitglied: 149062
Solution 149062 Jul 19, 2021 updated at 10:17:38 (UTC)
Goto Top
$password = sls "E:\mail.txt" -Pattern '^Meeting-Passwort: (.*)' | %{$_.Matches.Groups[1].Value}  
$password
tio.run
Member: RealFilmKuh
RealFilmKuh Jul 19, 2021 at 10:55:52 (UTC)
Goto Top
Danke!
Member: RealFilmKuh
RealFilmKuh Jul 19, 2021 updated at 14:23:01 (UTC)
Goto Top
Könntest du bitte den Befehl genauer erklären?

1) du gehst hin und deklarierst eine Variable $password:
2) an der Stelle setzt du ein select-string ab und lädst die TXT (den Inhalt)
3) mit dem Parameter -Pattern "suchst du nach Meeting-Passwort: = steht '^ hier für den Anfang der Position im String? oder wofür steht ^ ?
4) anschließend "pipest" du die Ausgabe mit %{$_.Matches.Groups[1].Value}

Wie würde man ein String durchsuchen, wenn der String folgendermaßen aussehen würde:
htpps://URL_zum_Meeting.de/ret278te8ep2nek2endjkb2uidb2pd\Meeting-Kennung: 175 485 2524\Meeting-Passwort: f2433we218

Muss man hier die Position durchsuchen oder kann man per Powershell sagen: such mir 'Meeting-Passwort:' im String und gib mir die nächsten 10 Zeichen aus bzw. das nächste Wort aus?

Sorry dass ich es Frage, aber ich hab es leider noch nicht 100% verstanden.

habe es gefunden:
$pattern = "Word1(.*?)Word2r"
$result = [regex]::match($string, $pattern).Groups[1].Value

Danke!