Mehrere Werte in Variable schreiben Powershell
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ß
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:
$Dateien= get-childitem Z:\SAP_Download\Allgemein -Force
$wert1 = @("BMG-Lagerbestand" , "Saarland") <-- hier habe ich versucht mit Komma zu arbeiten.
$wert2 = @("BMG-Materialbelege" "Saarland")
$wert3 = @("BMG-Lieferungen" "Saarland")
foreach($Datei in $Dateien){
if ((get-content Z:\SAP_Download\Allgemein\$Datei) -contains $wert1)
{Rename-Item Z:\SAP_Download\Allgemein\$Datei Z:\SAP_Download\Allgemein\KON_Bestand_BMG.txt}
else
{echo "nein"}
if (test-path Z:\SAP_Download\Allgemein\$Datei)
{
if ((get-content Z:\SAP_Download\Allgemein\$Datei) -contains $wert2 )
{Rename-Item Z:\SAP_Download\Allgemein\$Datei Z:\SAP_Download\Allgemein\KON_WE_BMG.txt}
else
{echo "nein"}
}
if (test-path Z:\SAP_Download\Allgemein\$Datei)
{
if ((get-content Z:\SAP_Download\Allgemein\$Datei) -contains $wert3)
{Rename-Item Z:\SAP_Download\Allgemein\$Datei Z:\SAP_Download\Allgemein\KON_WA_BMG.txt}
else
{echo "nein"}
}
}
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ß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 658225
Url: https://administrator.de/forum/mehrere-werte-in-variable-schreiben-powershell-658225.html
Ausgedruckt am: 09.04.2025 um 23:04 Uhr
3 Kommentare
Neuester Kommentar
$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('=') -in ($array2 | %{$_.Split('=')})}) {rename-item .....}
Dürfte aber nicht funktionieren, wenn ein Satzzeichen direkt am Wort steht. die müssten dann aus $Array1 erstmal entfernt werden
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('=') -in ($array2 | %{$_.Split('=')})}) {rename-item .....}
Dürfte aber nicht funktionieren, wenn ein Satzzeichen direkt am Wort steht. die müssten dann aus $Array1 erstmal entfernt werden