Mehrere Werte in Variable schreiben Powershell

Mitglied: germanbeast

germanbeast (Level 1)

03.03.2021 um 09:19 Uhr, 312 Aufrufe, 3 Kommentare, 1 Danke

Hallo zusammen,

ich habe eine kleine Frage zu meinem Script. Dieses sucht in TXT Dateien nach einem bestimmten Wert und wenn dies zutrifft nennt er die Datei um soviel schon mal im vorab.

Jetzt wollte ich gerne wissen wie es möglich ist dass das Script mehr als ein Wort in der TXT Datei sucht. Sprich es soll nicht nur nach BMG-Lagerbestand gesucht werden sondern bspw. auch nach Saarland. Also nochmal zusammengefasst gesagt es soll dass "UND" das drin stehen.


Hier mein Script zur Veranschaulichung:


Wie oben zu sehen habe ich versucht neben BMG-Lagerbestand Saarland einzufügen. Dann hat er aber garnichts mehr gesucht in der TXT Datei sondern nur noch Nein zurückgegeben.

Ich hoffe ihr könnt mir eine kleine Gedankenstütze dazu geben oder mir auf die Sprünge helfen. Vielen Dank schon mal im vorraus für eure Hilfe und Tipps.


Gruß
3 Kommentare
Mitglied: GarfieldBonn
03.03.2021, aktualisiert um 10:12 Uhr
$Wert ist ein Array. Dann kannst du dafür eine Foreach-Schleife basteln, setzt ein Variable auf $True und nach Durchlauf der Schleife wird bei TRUE die Datei umbenannt.

Oder wenn nicht allzuviel Werte verbinde die If-Abfrage mit '.or.' für $wert1, $wert2 ,....

oder so

$array1 = $datei.split(" ")
$Array2 = "Wert1", "Wert2", "wert3"

IF ($array1 | ?{$_.Split('=')[0] -in ($array2 | %{$_.Split('=')[0]})}) {rename-item .....}


Dürfte aber nicht funktionieren, wenn ein Satzzeichen direkt am Wort steht. die müssten dann aus $Array1 erstmal entfernt werden
Mitglied: germanbeast
03.03.2021 um 10:28 Uhr
Okay das ist schon mal eine gute Hilfestellung danke dafür.

Aber kann ich mit or abfragen dass wenn beide Werte in der TXT Datei sind dass sie dann erst umbenannt wird?

Habe es so probiert


Das ging leider nicht er hat es trotzdem umbenannt obwohl ich als Test in die Variable was reingeschrieben habe was nicht in der TXT Datei war.

Danke schon mal für die Unterstützung.
Mitglied: GarfieldBonn
03.03.2021 um 17:11 Uhr
$A=get-content Z:\SAP_Download\Allgemein\$Datei
if (($A -contains $wert1) -or ($a -contains $wert4)) {...}

oder wenn es reicht wenn nur ein Treffer vorhanden sein muss
und wenn alle Treffer vorhanden sein müssen