Benutzer mit den meisten Antworten
Powershell Variable erstellen die als Leerzeichen zählt

Frage
-
Hallo zusammen
Ich kontrolliere einen Pfad auf bestimmte Zeichen. ZB: ! oder Umlaute (äöü)
Nun will ich aber auch kontrollieren ob in einem Pfad Dateinamen mit Leerzeichen gegeben wurden. ZB: Test Ordner (anstelle von Test_Ordner)
#Angabe der Variable mit Leerzeichen
$fb1 = " " $fb1 = [regex]::escape($fb1) foreach ($dir in $dirlist) { if ($dir -match "($fb1)") { "$dir" | add-content "$CSV" #Schreibt Variable $dir in die CSV-Datei, $sort = import-csv "$CSV" -delimiter ";" | Sort-Object -Property Laenge -Descending "" | set-content "$CSV" $sort | export-csv "$CSV" -delimiter ";" –NoTypeInformation $countfehler = $countfehler + 1 } }Wenn ich nur zwei " mit einem Leerzeichen dazwischen schreibe, funktioniert das nicht. Was auch nicht sehr überraschend ist^^
Aber wie kann ich jetzt in der Variable ein Leerzeichen angeben?Danke im Voraus :)
Antworten
-
- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Mittwoch, 27. Dezember 2017 13:25
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 27. Dezember 2017 13:28
-
Hallo,
in deinem Fall würde ich mit RegEx arbeiten:
$Regex = [regex]"\s|ä|ö|ü|Ä|Ö|Ü" $Path = "C:\Program Files\Microsoft" IF ( $Regex.Match($Path).Success ) { Write-Host "Umlaute oder Leerzeichen enthalten" } else { Write-Host "Keine Umlaute oder Sonderzeichen enthalten" }
lg- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 27. Dezember 2017 13:28
Alle Antworten
-
- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Mittwoch, 27. Dezember 2017 13:25
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 27. Dezember 2017 13:28
-
Versuch doch mal
'\W|Ö|Ä|Ü|ö|ä|ü'
als -match pattern ... sollte eigentlich auch reichen ;-)
Edit: Ich Dussel .... in Powershell sollte eigentlich auch das reichen:
'\W|ö|ä|ü'
... weil ja -match im Standard erst mal case insensitiv ist, gelle? ;-) :-D
Best regards,
(79,108,97,102|%{[char]$_})-join''
- Bearbeitet BOfH-666 Freitag, 15. Dezember 2017 12:35
-
Hallo,
in deinem Fall würde ich mit RegEx arbeiten:
$Regex = [regex]"\s|ä|ö|ü|Ä|Ö|Ü" $Path = "C:\Program Files\Microsoft" IF ( $Regex.Match($Path).Success ) { Write-Host "Umlaute oder Leerzeichen enthalten" } else { Write-Host "Keine Umlaute oder Sonderzeichen enthalten" }
lg- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 27. Dezember 2017 13:28