From 1b97c81d7a0fe6cca29a80ceba54298a1e7d631f Mon Sep 17 00:00:00 2001 From: "Harald G. Mueller" Date: Wed, 15 Feb 2023 13:43:15 +0100 Subject: [PATCH] muh --- .../README.md | 79 +++++++++++++------ .../B)_emailadressen-erzeugen/README.md | 8 +- 2 files changed, 60 insertions(+), 27 deletions(-) diff --git a/m122/moegliche-LB-Aufgaben/A)_verzeichnisse-und-dateien-anlegen/README.md b/m122/moegliche-LB-Aufgaben/A)_verzeichnisse-und-dateien-anlegen/README.md index 8d4f7e4..cdc7a1b 100644 --- a/m122/moegliche-LB-Aufgaben/A)_verzeichnisse-und-dateien-anlegen/README.md +++ b/m122/moegliche-LB-Aufgaben/A)_verzeichnisse-und-dateien-anlegen/README.md @@ -5,15 +5,19 @@ ## Dateien und Verzeichnisse anlegen -Als Lehrer habe den Bedarf, für alle Lernenden einer Klasse -dieselben Dateien zur Verfügung zu stellen. +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. -Es gibt mehrere Klassen. Jede Klasse bekommt ein Verzeichnis. -Alle Lernenden bekommen alle ein eigenes Verzeichniss in der -'eigenen' Klasse. Und in jedem Lernenden-Verzeichnis sollen -die gleichen Dateien zur Verfügung gestellt werden. +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 @@ -33,14 +37,16 @@ Es soll nachher eine solche Struktur entstehen: usw. -### Vorbereitung +### Gegeben + Ich bereite mich so vor, dass ich eine Liste mit allen Namen -aller Lernenden habe. Diese mache ich dann ein eine Datei. Diese -Datei bekommt den Namen (die Abkürzung) der Klasse. +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 könnte so aussehen: +Der Inhalt der M122-AP22b.txt Datei sieht dann so aus: Amherd Baume-Schneider @@ -50,26 +56,53 @@ Der Inhalt der M122-AP22b.txt Datei könnte so aussehen: 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 für den Programmablauf +### Mögliche Strategie und Lösung in PowerShell -Versuchen Sie alles in **bash** nachzumachen. -Aber Achtung. Manche Dinge kann man oder muss -man in **bash** anders machen. Wenn Sie ganz -gefitzt sind, werden Sie auch noch eine -einfachere und schnellere Lösung finden. +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. -**Beispiel-Lösung in PS** -Das automatisierte Skript muss jetzt den Dateinamen (vor dem Punkt) -auslesen um damit das Grundverzeichnis anzulegen. Dann muss das -Skript die Datei öffnen und alle Namenseinträge lesen. Die Namen -sind in einer Liste, die ich dann als "array" verwenden werde um -mit jedem (Namens-)Eintrag erstens ein Verzeichnis zu erstellen -und zweitens die Dateien aus dem Template dort hinein zu kopieren. +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-01.ps1) - [./loesung-in-powershell/einstieg-prepareFiles-02.ps1](./loesung-in-powershell/einstieg-prepareFiles-02.ps1) diff --git a/m122/moegliche-LB-Aufgaben/B)_emailadressen-erzeugen/README.md b/m122/moegliche-LB-Aufgaben/B)_emailadressen-erzeugen/README.md index 0a73eca..02d01f3 100644 --- a/m122/moegliche-LB-Aufgaben/B)_emailadressen-erzeugen/README.md +++ b/m122/moegliche-LB-Aufgaben/B)_emailadressen-erzeugen/README.md @@ -104,11 +104,11 @@ Der "Archiv"-Dateiname soll so aussehen: Später werden diese obigen Prozesse für kommende Anwenungen vollautomatisch erstellt werden. Dafür erstellen Sie -- 1.) ein CronTab-Eintrag (oder Aufgabenplanungs-Task) -- 2.) ein Mail mit Attachment, +- 1.) ein CronTab-Eintrag in Linux
(oder Aufgabenplanungs-Task bein Windows) +- 2.) ein Mail mit Attachment -damit Sie erstens wissen, wann die Generierung der Liste und die Briefe -fertig ist. +damit Sie wissen, wann die Generierung der Liste und die Briefe +fertig ist und damit die Resultate an den richtigen Ort gelangen. Das erzeugte Mail brauchen Sie auch, damit Sie die Resultate in einem ersten Ausbau mal an sich selber schicken und überprüfen können.