.. | ||
input-daten | ||
loesung-in-powershell | ||
README.md |
M122 - Aufgabe
2023-02 MUH
Dateien und Verzeichnisse anlegen
Als Lehrer habe ich den Bedarf, für alle Lernenden einer Klasse dieselben Dateien zur Verfügung zu stellen. Sie können sich auch vorstellen, Sie müssen für eine Anzahl ihrer Kollegen oder Mitarbeiter einen Satz von gleichen Dateien bereitstellen.
In diesem Beispiel gibt mehrere Klassen. Jede Klasse bekommt ein Verzeichnis.
In diesem Klassenverzeichnis wird für jede Person ein weiteres Verzeichnis angelegt. Das heisst, dass alle Lernenden ein eigenes Verzeichnis bekommen. Und in diesem Lernenden-Verzeichnis sollen dann die gleichen Dateien zur Verfügung gestellt werden.
Gesucht
Es soll nachher eine solche Struktur entstehen:
./M122-AP22b
Amherd
Datei-1.txt
Datei-2.docx
Datei-3.pdf
Baume-Schneider
Datei-1.txt
Datei-2.docx
Datei-3.pdf
Berset
Datei-1.txt
Datei-2.docx
Datei-3.pdf
usw.
Gegeben
Ich bereite mich so vor, dass ich eine Liste mit allen Namen aller Lernenden habe, die in einer Datei stehen.
Diese Datei bekommt den Namen (die Abkürzung) der Klasse:
./M122-AP22b.txt
Der Inhalt der M122-AP22b.txt Datei sieht dann so aus:
Amherd
Baume-Schneider
Berset
Cassis
Keller-Sutter
Parmelin
Roesti
Ihre Aufgabe
Sie sollten grundsätzlich selber versuchen, Ihre eigene Lösung zu finden. Sie können sich gerne auch mit jemandem zusammenzutun um zusammen zu forschen, nachzudenken und um die ersten Schritte gemeinsam zu machen.
Sie haben in den letzten Wochen bash gelernt. Die Idee ist, dass nun mit dieser Skriptsprache die Lösung erarbeiten.
Wenn Sie gefitzt sind, werden Sie vielleicht auch eine einfachere und schnellere Lösung in bash finden.
Damit Sie einmal einen Einblick bekommen, ist hier in der Folge die gleiche Aufgabe in PowerShell programmiert und Sie sollten Ihre eigene Lösung in bash finden.
beachten Sie
bash hat nicht die gleichen Möglichkeiten wie PowerShell. Manches ist nicht so einfach oder auch ganz anders zu machen.
Mögliche Strategie und Lösung in PowerShell
1.) Das automatisierte Skript muss zuerst den Dateinamen (vor dem Punkt) auslesen um damit das Grundverzeichnis (das der Klasse) anzulegen.
2.) Dann muss das Skript die Datei öffnen und alle Namenseinträge herauslesen.
3.) Die Namen sind in einer Liste notiert. Die können gleich als "array" verwendet werden.
Es gibt Möglichkeiten, die oben beiden Schritte in einem einzigen Befehl zu machen um gleichzeitig den Inhalt einer Datei direkt einer Programm-Variablen zuzuweisen und um den nächsten Schritt gleich damit zu machen.
4.) Mit jedem (Namens-)Eintrag muss man erstens ein Verzeichnis erstellen und zweitens die Dateien aus dem "Template"-Verzeichnis hinein zu kopieren.
- ./loesung-in-powershell/einstieg-prepareFiles-01.ps1
- ./loesung-in-powershell/einstieg-prepareFiles-02.ps1
- ./loesung-in-powershell/einstieg-prepareFiles-03.ps1
- ./loesung-in-powershell/einstieg-prepareFiles-04.ps1
- ./loesung-in-powershell/einstieg-prepareFiles-05.ps1
- ./loesung-in-powershell/einstieg-prepareFiles-06.ps1
- ./loesung-in-powershell/einstieg-prepareFiles-07.ps1