Powershell - Zählerschleife mit Buchstaben?
Wie erstellt man eine WHILE-Schleife in Powershell, welche einen Zähler mit Buchstaben statt Zahlen nutzt?
...also statt $i (Integer) beginnt die Runden zu zählen mit: 0, 1, 2, 3, 4, ...
...soll ein String genutzt werden $s (String) welche beginnt mit: aaa, aab, aac, aad, ... bis zzz.
Beispiel:
for ($s=aaa; $s -eq zzz; $s++){
[DO SOMETHING]
}
Es sollen nur 3 Buchstaben genutzt werden, ohne Umlaute, kein ß (sz)!
Gibt es dafür ein passendes Alphabet welches man ansprechen kann?
...oder muss ich vorher ein Array definieren mit alle Kombinationen der Buchstaben... und dann mit FOR EACH (keine Ahnung wie es bei Powershell genau heißt) arbeiten?
Für Hinweise wäre ich sehr dankbar. Ich muss nur mal in die richtige Richtung gestoßen werden... dann kann ich mir den Code mit Hilfe von Google wohl irgendwie zusammen bauen. Danke!
2 Antworten
Powershell ist prima! Aufzählung gib mal 1..10 ein 😉
wenn das klapt versuchen wirs doch mit den Zahlen von 97..122 ( 'a' hat den ASCII-Wert 97 , 'z' = 122 ) und einen Typecast zu einem CharArray :
[char[]](97..122)
unser Array jagen wir noch in eine foreach-Pipe und wir können mit den Buchstaben tun was wir wollen
[char[]](97..122)|% {'ich mach was mit {0}' -f $_}
oder wir jagen die Zahlen in die Pipe (hier für a..z und A..Z wandeln erst innerhalb der Foreach-Schleife in Chars.
(97..122)+(65..90)|% {
'ich mach was mit {0}' -f [char]$_
}
für ein ausgewähltes Zeichenset einfach einen String zu einem Chararray casten und dito:
[char[]]'abcdeXYZ'|% {
'ich mach was mit {0}' -f [char]$_
}
$alpha=[char[]](97..122)
#im Prinzip ds gleiche wie von @whgoffline nur das ichs in einer verschachtelten Pipe mache und in eine Variable speichere
$MeineKombinationen=$alpha|%{$letter1=$_;$alpha|%{$letter2=$_;$alpha|%{$letter3=$_;$letter1+$letter2+$letter3}}}
$MeineKombinationen|%{'{1}. ich mach was mit {0}' -f $_ ,++$i}
pause
Probier mal sowas
$alpha = "abcdefghiklmopqrstuvwxyz"
$alpha = $alpha.toCharArray()
foreach ($letter1 in $alpha) {
foreach ($letter2 in $alpha) {
foreach ($letter3 in $alpha) {
write-output "$letter1$letter2$letter3"
}
}
}
$alpha = "abcdefghiklmopqrstuvwxyz"
$alpha = $alpha.toCharArray()
nicht dein Ernst, auch wenn Sachlich richtig...
[char[]]$alpha = "abcdefghiklmopqrstuvwxyz" # sag doch gleich das $alpha einen bestimmten Typ hat. In C# oder C++ machst Du das doch auch?