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
|
## Dateien und Verzeichnisse anlegen
|
||||||
|
|
||||||
Als Lehrer habe den Bedarf, für alle Lernenden einer Klasse
|
Als Lehrer habe ich den Bedarf, für alle Lernenden einer Klasse
|
||||||
dieselben Dateien zur Verfügung zu stellen.
|
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.
|
In diesem Beispiel 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
|
In diesem Klassenverzeichnis wird für jede Person ein weiteres
|
||||||
die gleichen Dateien zur Verfügung gestellt werden.
|
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
|
### Gesucht
|
||||||
|
|
||||||
Es soll nachher eine solche Struktur entstehen:
|
Es soll nachher eine solche Struktur entstehen:
|
||||||
|
|
||||||
./M122-AP22b
|
./M122-AP22b
|
||||||
@ -33,14 +37,16 @@ Es soll nachher eine solche Struktur entstehen:
|
|||||||
usw.
|
usw.
|
||||||
|
|
||||||
|
|
||||||
### Vorbereitung
|
### Gegeben
|
||||||
|
|
||||||
Ich bereite mich so vor, dass ich eine Liste mit allen Namen
|
Ich bereite mich so vor, dass ich eine Liste mit allen Namen
|
||||||
aller Lernenden habe. Diese mache ich dann ein eine Datei. Diese
|
aller Lernenden habe, die in einer Datei stehen.
|
||||||
Datei bekommt den Namen (die Abkürzung) der Klasse.
|
|
||||||
|
Diese Datei bekommt den Namen (die Abkürzung) der Klasse:
|
||||||
|
|
||||||
./M122-AP22b.txt
|
./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
|
Amherd
|
||||||
Baume-Schneider
|
Baume-Schneider
|
||||||
@ -50,26 +56,53 @@ Der Inhalt der M122-AP22b.txt Datei könnte so aussehen:
|
|||||||
Parmelin
|
Parmelin
|
||||||
Roesti
|
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.
|
1.) Das automatisierte Skript muss zuerst den Dateinamen
|
||||||
Aber Achtung. Manche Dinge kann man oder muss
|
(vor dem Punkt) auslesen um damit das Grundverzeichnis
|
||||||
man in **bash** anders machen. Wenn Sie ganz
|
(das der Klasse) anzulegen.
|
||||||
gefitzt sind, werden Sie auch noch eine
|
|
||||||
einfachere und schnellere Lösung finden.
|
|
||||||
|
|
||||||
|
2.) Dann muss das Skript die Datei öffnen und alle Namenseinträge
|
||||||
|
herauslesen.
|
||||||
|
|
||||||
**Beispiel-Lösung in PS**
|
3.) Die Namen sind in einer Liste notiert. Die können gleich
|
||||||
Das automatisierte Skript muss jetzt den Dateinamen (vor dem Punkt)
|
als "array" verwendet werden.
|
||||||
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.
|
|
||||||
|
|
||||||
|
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-01.ps1](./loesung-in-powershell/einstieg-prepareFiles-01.ps1)
|
||||||
- [./loesung-in-powershell/einstieg-prepareFiles-02.ps1](./loesung-in-powershell/einstieg-prepareFiles-02.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
|
Später werden diese obigen Prozesse für kommende Anwenungen
|
||||||
vollautomatisch erstellt werden. Dafür erstellen Sie
|
vollautomatisch erstellt werden. Dafür erstellen Sie
|
||||||
|
|
||||||
- 1.) ein CronTab-Eintrag (oder Aufgabenplanungs-Task)
|
- 1.) ein CronTab-Eintrag in Linux<br>(oder Aufgabenplanungs-Task bein Windows)
|
||||||
- 2.) ein Mail mit Attachment,
|
- 2.) ein Mail mit Attachment
|
||||||
|
|
||||||
damit Sie erstens wissen, wann die Generierung der Liste und die Briefe
|
damit Sie wissen, wann die Generierung der Liste und die Briefe
|
||||||
fertig ist.
|
fertig ist und damit die Resultate an den richtigen Ort gelangen.
|
||||||
|
|
||||||
Das erzeugte Mail brauchen Sie auch, damit Sie die Resultate in einem
|
Das erzeugte Mail brauchen Sie auch, damit Sie die Resultate in einem
|
||||||
ersten Ausbau mal an sich selber schicken und überprüfen können.
|
ersten Ausbau mal an sich selber schicken und überprüfen können.
|
||||||
|
Loading…
Reference in New Issue
Block a user