mirror of
https://gitlab.com/harald.mueller/aktuelle.kurse.git
synced 2024-11-27 20:21:56 +01:00
muh
This commit is contained in:
parent
e96c6b90e1
commit
1b97c81d7a
@ -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
|
||||
|
||||
<hr>
|
||||
|
||||
### 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)
|
||||
|
@ -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<br>(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.
|
||||
|
Loading…
Reference in New Issue
Block a user