Übungsaufgaben Powershell?
Und zwar soll ich demnächst Prakitkanten für einen Tag betreuen und brauche eine Beschäftigung für diese. Mein Vorgesetzter meinte ich kann sie ja ein bisschen in Powershell rumspielen lassen.
Ich hatte die Idee, kleine Skripte schreiben zu lassen, aber als Teilaufgaben aufgegliedert. Quasi bis zu einem bestimmten Punkt und wenn sie Praktikanten damit fertig sind dann kommt ne neue kleine Funktion dazu usw., so dass der Tag damit ausgefüllt werden kann.
Bin leider sehr unkreativ und mir fällt nicht so richtig was ein, wie man diese Übung gestalten könnte(also was das Skript machen soll). Es kann auch ein bisschen in die lustige Richtung gehen. Habe auch keine Ahnung, ob die schonmal was mit Powershell gemacht haben. Also die Schwierigkeit sollte so ein Mittelmaß sein.
Vielleicht könnt ihr mir ja weiterhelfen :)
3 Antworten
Die Besonderheit von PowerShell gegenüber herkömmlichen Shells ist ja, dass im Hintergrund Objekte ausgetauscht werden anstatt reine Texte. Dazu gibt es auch ein paar Beispielscripte bei Microsoft. Aber das ist nicht unbedingt anfängergeeignet.
Neulich hatten wir hier die Frage, wie man Suchen und Ersetzen auf Hunderte von Dateien in einem Ordner anwenden kann (vielleicht auch in Unterordnern). Das wäre auch eine mögliche Übung. Vielleicht mal alle "o" durch "au" ersetzen lassen. ("l" durch "r" ersetzen lassen oder umgekehrt, was ich vor 10 Jahren vorgeschlagen hätte, dürfte nicht "woke-konform" sein - Ostasiaten können schlecht zwischen unseren Lauten "l" und "r" unterscheiden, weshalb im Volksglauben Chinesen "l" statt "r" sagen und - weniger bekannt - Japaner "r" statt "l".)
Man kann auch ein paar "cmd-lets" mit praktischem Nutzen suchen und die Schützlinge nach cmd-lets mit dieser Aufgabe suchen lassen, um sie von einem eigenen kleinen Script aufrufen zu lassen. Backup oder Verfolgen von Änderungen zwischen aktuellen und archivierten Versionen von Textdateien vielleicht.
Mal in meinem Forenantworten-Archiv gekramt...:
Ich hätte da eine Aufgabe welche sich zwar leicht anhört, aber richtig den Kopf rauchen lässt.
Erzeuge alle Buchstabenkombinationen, welche durch vertauschen der Buchstaben im String "erwin" möglich sind.
also:
erwin
rewin
werin
ewrin
rwein
wrein
irewn
...
Programmieren ist nicht nur Code schreiben. Selbst wenn Dein Praktikant ein helles Kelchen ist , ohne ordentliche Recherche lässt sich die Sache nicht lösen. Damit dürfte er erstmal eine Weile beschäftigt sein um zusammenzusuchen, was er dafür braucht.
Bis er sich zu
- https://en.wikipedia.org/wiki/Heap%27s_algorithm
- https://www.baeldung.com/cs/array-generate-all-permutations
... durchgekämpft hat dürfte er richtig "Spaß" haben.
Bis er die Sache begriffen hat geht die Woche rum.
Das Tolle daran, es gibt extrem wenig fertige Lösungen für Powershell. Copy&Paste ist nahezu ausgeschlossen.
Meine eigene Interpretation dazu: Heap's Algorithmus a la Erzesel.
function permute ([char[]]$str , $Size ){
if($Size -eq 1){
$str -join ''
}
else{
$LastIndex = $Size-1
$switch = $Size -band 1 -bxor 1
permute $str $LastIndex
foreach ($i in 0..($LastIndex-1) ){
$str[$LastIndex], $str[$i*$switch] = $str[$i*$switch], $str[$LastIndex]
permute $str $LastIndex
}
}
}
$myStr = 'erwin'
$permCount=iex($myStr.length..1 -join '*')
permute $myStr ($myStr.Length)
$permCount
pause
sieht echt niedlich aus. Aber der hat es in sich:
Für erwin gibt's 120 Kombinationen
Bei katzenimpfbuch gibt es 87.178.291.200 Kombinationen (ein Computer @4GHz braucht dafür ca.12 Tage)
Die Praktikanten sind nur einen Tag da, aber danke für die ausführliche Antwort. Wäre natürlich trotzdem krass, wenn die das innerhalb der kurzen Zeit hinbekommen :)