Übungsaufgaben Powershell?

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.

Woher ich das weiß:Berufserfahrung – Software-Entwickler

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

... 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)

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

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 :)

0