diff --git a/m122/uebungen/README.md b/m122/uebungen/README.md
deleted file mode 100644
index dbf87d1..0000000
--- a/m122/uebungen/README.md
+++ /dev/null
@@ -1,72 +0,0 @@
-# M122 - Übungen
-
-## Dateien und Verzeichnisse anlegen
-
-Ich habe den Bedarf, für alle Lernenden einer Klasse dieselben
-Dateien zur Verfügung zu stellen. Ich bereite mich so vor, dass
-ich eine Liste mit allen Namen habe. Weiter werde ich ein
-Directory namens "_template" bereitstellen, das die Dateien
-enthält, die ich in alle Lernenden-Verzeichnisse hineinkopieren
-will.
-
-Es gibt mehrere Klassen. Die Lernenden bekommen alle ein eigenes
-Verzeichnisse. und jede Klasse bekommt ein Verzeichnis, in dem die
-Lernenden-Verzeichnisse gesammelt sind. In jedem dieser Lernenden-Verzeichnisse
-sind dann die zur Verfügung gestellten Dateien enthalten.
-
-
-Damit es bei der Anwendung am Schluss nicht all zu viel Aufwand
-gibt, mache ich die Liste der Lernenden einer Klasse in eine Datei,
-die schon mit dem Namen der Klasse (und des Moduls) in der Art z.B.
-M122-AP22b.txt angelegt ist. Das automatisierte Skript muss dann
-"nur" noch den Dateinamen vor dem Punkt auslesen um damit dann
-das Grundverzeichnis anzulegen wo dann dort hinein die
-Lernenden-Verzeichnisse angelegt werden. Dort hinen, in den
-Klassen- und den Lernenden-Verzeichnissen, kommen dann die
-bereitgelegten Dateien.
-
-
-Erstellen Sie folgende Datei- und Verzeichnisstruktur
-
- ./M122-AP22b.txt
-
- ./_template
- Datei-1.txt
- Datei-2.docx
- Datei-3.pdf
-
-
-Der Inhalt der M122-AP22b.txt Datei könnte so aussehen:
-
- Amherd
- Baume
- Berset
- Cassis
- Keller
- Parmelin
- Roesti
-
-
-Es soll nachher eine solche Struktur entstehen:
-
- ./M122-AP22b
- Amherd
- Datei-1.txt
- Datei-2.docx
- Datei-3.pdf
- Baume
- Datei-1.txt
- Datei-2.docx
- Datei-3.pdf
- Berset
- Datei-1.txt
- Datei-2.docx
- Datei-3.pdf
-
- usw.
-
-
-
-
-
-Erstellen Sie ein Skript, das diese Aufgabe erledigt.
\ No newline at end of file
diff --git a/m122/uebungen/verzeichnisse-und-dateien-anlegen/README.md b/m122/uebungen/verzeichnisse-und-dateien-anlegen/README.md
new file mode 100644
index 0000000..43a57fb
--- /dev/null
+++ b/m122/uebungen/verzeichnisse-und-dateien-anlegen/README.md
@@ -0,0 +1,91 @@
+# M122 - Übungen
+
+## Dateien und Verzeichnisse anlegen
+
+Ich habe den Bedarf, für alle Lernenden einer Klasse dieselben
+Dateien zur Verfügung zu stellen. Es gibt mehrere Klassen. Die
+Lernenden bekommen alle ein eigenes Verzeichnisse. Und jede
+Klasse bekommt ein Verzeichnis. In diesem Klassen- Verzeichnis
+sind dann die Lernenden-Verzeichnisse gesammelt. In jedem dieser
+Lernenden-Verzeichnisse werden dann die gewünschten Dateien zur
+Verfügung gestellt.
+
+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.
+
+Weiter werde ich ein Verzeichnis namens "_template" bereitstellen.
+Da drin werden dann alle Dateien hineingelegt, die allen Lernenden
+zur Verfügung gestellt werden sollen.
+
+
+Strategie (Programmablauf)
+
+Das automatisierte Skript muss jetzt den Dateinamen (vor dem Punkt)
+auslesen um damit das Grundverzeichnis anzulegen. Dann muss das
+Skrpt die Datei öffnen und alle Namenseinträge auslesen. 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.
+
+
+Erstellen Sie als Ausgangslage folgende Dateien und Verzeichnisstruktur
+
+ ./M122-AP22b.txt
+
+ ./_template
+ Datei-1.txt
+ Datei-2.docx
+ Datei-3.pdf
+
+
+Der Inhalt der M122-AP22b.txt Datei könnte so aussehen:
+
+ Amherd
+ Baume
+ Berset
+ Cassis
+ Keller
+ Parmelin
+ Roesti
+
+
+Es soll nachher eine solche Struktur entstehen:
+
+ ./M122-AP22b
+ Amherd
+ Datei-1.txt
+ Datei-2.docx
+ Datei-3.pdf
+ Baume
+ Datei-1.txt
+ Datei-2.docx
+ Datei-3.pdf
+ Berset
+ Datei-1.txt
+ Datei-2.docx
+ Datei-3.pdf
+
+ usw.
+
+
+
+
+
+Erstellen Sie ein Skript, das diese Aufgabe erledigt.
+
+
+
+
+
+
+
+
+
+
+
+Hier eine Lösung in **PowerShell**.
+
+Versuchen Sie alles in **bash** nachzumachen. Aber Achtung. Manche Dinge kann man oder muss man in **bash** anders machen.
+
+![./loesung-in-powershell/einstieg-prepareFiles-01.ps1](./loesung-in-powershell/einstieg-prepareFiles-01.ps1)
diff --git a/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/_namensdateien/M122-BR23a.txt b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/_namensdateien/M122-BR23a.txt
new file mode 100644
index 0000000..9323eb8
Binary files /dev/null and b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/_namensdateien/M122-BR23a.txt differ
diff --git a/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/_namensdateien/M122-SR23a.txt b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/_namensdateien/M122-SR23a.txt
new file mode 100644
index 0000000..432c2e5
Binary files /dev/null and b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/_namensdateien/M122-SR23a.txt differ
diff --git a/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/_template/datei-1.txt b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/_template/datei-1.txt
new file mode 100644
index 0000000..cd28008
Binary files /dev/null and b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/_template/datei-1.txt differ
diff --git a/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/_template/datei-2.docx b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/_template/datei-2.docx
new file mode 100644
index 0000000..960c2aa
Binary files /dev/null and b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/_template/datei-2.docx differ
diff --git a/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/_template/datei-3.pdf b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/_template/datei-3.pdf
new file mode 100644
index 0000000..6135b8e
Binary files /dev/null and b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/_template/datei-3.pdf differ
diff --git a/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/_template/datei-4.xlsx b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/_template/datei-4.xlsx
new file mode 100644
index 0000000..2c23417
Binary files /dev/null and b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/_template/datei-4.xlsx differ
diff --git a/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-01.ps1 b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-01.ps1
new file mode 100644
index 0000000..851b652
--- /dev/null
+++ b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-01.ps1
@@ -0,0 +1,17 @@
+# mal schauen, ob ob ich Verzeichnisse und Dateien anlegen kann
+
+# Verzeichnis anlegen
+mkdir _template
+
+#Verzeichnis wechseln
+cd .\_template
+
+
+# Verzeichnis zurück wechseln
+cd ..
+
+dir
+
+ls .\_template
+
+echo "---fertig---"
diff --git a/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-02.ps1 b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-02.ps1
new file mode 100644
index 0000000..6baa2d8
--- /dev/null
+++ b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-02.ps1
@@ -0,0 +1,55 @@
+# mal schauen, ob ob ich Verzeichnisse und Dateien anlegen kann
+
+# Verzeichnis anlegen
+mkdir _template
+
+#Verzeichnis wechseln
+cd .\_template
+
+# Dateien im Verzeichnis anlegen,
+# jedoch nur mit Fake-Inhalt damit mal was da ist.
+#
+# Trick: Mit "echo" wird normalwerweise ein Text
+# auf die Konsole herausgeschrieben.
+# Mit dem ">" wird dann dieser Output in eine
+# Datei umgelenkt. Die Datei wird entweder neu
+# angelegt oder ersetzt, wenn es schon eine gibt
+echo "datei-1.txt" > datei-1.txt
+echo "datei-2.docx" > datei-2.docx
+echo "datei-3.pdf" > datei-3.pdf
+echo "datei-4.xlsx" > datei-4.xlsx
+
+# Verzeichnis zurück wechseln
+cd ..
+
+#############################################
+# Namensdatei-Vorlage automatisch erstellen #
+#############################################
+
+# Ich speichere mal den Dateinamen in eine Variable,
+# weil ich das mehrmals brauche
+
+$namensdatei = "M122-BR23a.txt"
+
+# ich mache die Namendatei gleich zur besseren
+# Ordnung in ein entsprechendes Verzeichnis
+
+$verzeichnis_namensdateien = "_namensdateien"
+mkdir $verzeichnis_namensdateien
+cd $verzeichnis_namensdateien
+
+# Namendatei anlegen und Inhalte reinschreiben
+echo "Amherd" > $namensdatei
+
+# Zwei ">" (">>") hängt das neue Material unten an
+echo "Baume-Schneider" >> $namensdatei
+echo "Berset" >> $namensdatei
+echo "Cassis" >> $namensdatei
+echo "Keller-Sutter" >> $namensdatei
+echo "Parmelin" >> $namensdatei
+echo "Roesti" >> $namensdatei # Umlaute wie das "ö" sind mega schlecht
+
+cd ..
+
+# Skript anhalten, um zu sehen, obs Fehler gab
+pause
\ No newline at end of file
diff --git a/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-03.ps1 b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-03.ps1
new file mode 100644
index 0000000..111f558
--- /dev/null
+++ b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-03.ps1
@@ -0,0 +1,12 @@
+# mal schauen, ob ob ich aus Verzeichnissen, Dateien lesen kann
+
+$verzeichnis_namensdateien = "_namensdateien"
+
+# Da PowerShell objektorientiert ist, kann man gleich das
+# Name-Attribut aus der Resultatsliste erfragen.
+# Dies wird sogleich in eine Variable gespeichert.
+$allFiles = (dir $verzeichnis_namensdateien).name
+echo $allFiles
+
+# Skript anhalten, um zu sehen, obs Fehler gab
+pause
\ No newline at end of file
diff --git a/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-04.ps1 b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-04.ps1
new file mode 100644
index 0000000..b437f24
--- /dev/null
+++ b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-04.ps1
@@ -0,0 +1,26 @@
+# mal schauen, ob ob ich aus Verzeichnissen, Dateien lesen kann
+
+$verzeichnis_namensdateien = "_namensdateien"
+
+# Da PowerShell objektorientiert ist, kann man gleich das
+# Name-Attribut aus der Resultatsliste erfragen.
+# Dies wird sogleich in eine Variable gespeichert.
+$allFiles = (dir $verzeichnis_namensdateien).name
+
+# Ich versuche mal alles aufzulisten
+# Wir haben jetzt ja in "allFiles" die ganze Liste der Files
+# im Verzeichnis gespeichert.
+# mit "type" kann ich nun auslesen, was in jeder Datei drin ist.
+# Wenn man in PowerShell ein 2echo" auf eine Liste macht,
+# kann er die ganze Liste ausdrucken
+foreach ($file in $allFiles) {
+ $fileinhalt = type $verzeichnis_namensdateien/$file
+ echo $file
+ echo "---"
+ echo $fileinhalt
+ echo "===="
+ echo ""
+}
+
+# Skript anhalten, um zu sehen, obs Fehler gab
+pause
\ No newline at end of file
diff --git a/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-05.ps1 b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-05.ps1
new file mode 100644
index 0000000..ef1b71d
--- /dev/null
+++ b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-05.ps1
@@ -0,0 +1,16 @@
+
+$verzeichnis_namensdateien = "_namensdateien"
+$allFiles = (dir $verzeichnis_namensdateien).name
+
+# Mir fehlt nun noch, dass ich den Dateinamen inkl. dem Punkt habe.
+# aber ich brauche nur den Teil vor dem Punkt.
+# Um das zu machen, gibt es eine "split"-Funktion
+# Nach dem Split, brauche ich dann die erste Position (=0)
+foreach ($file in $allFiles) {
+ $fileNameVorPunkt = $file.split(".")[0]
+ echo $fileNameVorPunkt
+ echo ""
+}
+
+# Skript anhalten, um zu sehen, obs Fehler gab
+pause
\ No newline at end of file
diff --git a/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-06.ps1 b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-06.ps1
new file mode 100644
index 0000000..b0ecd09
--- /dev/null
+++ b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-06.ps1
@@ -0,0 +1,20 @@
+# Jetzt alles zusammen
+#
+#
+#
+#
+$verzeichnis_template = "_template"
+$verzeichnis_namensdateien = "_namensdateien"
+
+$allFiles = (dir $verzeichnis_namensdateien).name
+
+foreach ($file in $allFiles) {
+ $fileNameVorPunkt = $file.split(".")[0]
+ echo $fileNameVorPunkt
+ echo ""
+ $fileinhalt = type $verzeichnis_namensdateien/$file
+ foreach ($zeile in $fileinhalt) {
+ echo $verzeichnis_namensdateien/$file/$zeile
+ }
+}
+
diff --git a/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-07.ps1 b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-07.ps1
new file mode 100644
index 0000000..125f902
--- /dev/null
+++ b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/einstieg-prepareFiles-07.ps1
@@ -0,0 +1,17 @@
+# Jetzt alles zusammen
+#
+$verzeichnis_template = "_template"
+$verzeichnis_namensdateien = "_namensdateien"
+
+$allFiles = (dir $verzeichnis_namensdateien).name
+
+foreach ($file in $allFiles) {
+ $fileNameVorPunkt = $file.split(".")[0]
+ $klasse = $fileNameVorPunkt
+ $fileinhalt = type $verzeichnis_namensdateien/$file
+ foreach ($teilnehmer in $fileinhalt) {
+ mkdir $verzeichnis_namensdateien/$klasse/$teilnehmer
+ copy $verzeichnis_template/*.* $verzeichnis_namensdateien/$klasse/$teilnehmer
+ }
+}
+
diff --git a/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/prepareFiles.ps1 b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/prepareFiles.ps1
new file mode 100644
index 0000000..389a19c
--- /dev/null
+++ b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/prepareFiles.ps1
@@ -0,0 +1,17 @@
+# erstellt alle Verzeichnisse und kopiert die
+# Template-Dateien in alle Teilnehmer aller Klassen
+
+$verzeichnis_template = "_template"
+$verzeichnis_namensdateien = "_namensdateien"
+
+$allFiles = (dir $verzeichnis_namensdateien).name
+
+foreach ($file in $allFiles) {
+ $fileNameVorPunkt = $file.split(".")[0]
+ $klasse = $fileNameVorPunkt
+ $fileinhalt = type $verzeichnis_namensdateien/$file
+ foreach ($teilnehmer in $fileinhalt) {
+ mkdir $verzeichnis_namensdateien/$klasse/$teilnehmer
+ copy $verzeichnis_template/*.* $verzeichnis_namensdateien/$klasse/$teilnehmer
+ }
+}
diff --git a/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/prepareTemplate.ps1 b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/prepareTemplate.ps1
new file mode 100644
index 0000000..da0f360
--- /dev/null
+++ b/m122/uebungen/verzeichnisse-und-dateien-anlegen/loesung-in-powershell/prepareTemplate.ps1
@@ -0,0 +1,56 @@
+# Erstelle das Template-Verzeichnis und die Dateien
+
+# Verzeichnis anlegen
+mkdir _template -ErrorAction Ignore
+
+#Verzeichnis wechseln
+cd .\_template
+
+# Dateien im Verzeichnis anlegen,
+# jedoch nur mit Fake-Inhalt damit mal was da ist.
+echo "datei-1.txt" > datei-1.txt
+echo "datei-2.docx" > datei-2.docx
+echo "datei-3.pdf" > datei-3.pdf
+echo "datei-4.xlsx" > datei-4.xlsx
+
+# Verzeichnis zurück wechseln
+cd ..
+
+#############################################
+# Namensdatei-Vorlage automatisch erstellen #
+#############################################
+
+# Ich speichere mal den Dateinamen in eine Variable,
+# weil ich das mehrmals brauche
+
+$namensdatei = "M122-BR23a.txt"
+
+# ich mache die Namendatei gleich zur besseren
+# Ordnung in ein entsprechendes Verzeichnis
+
+$verzeichnis_namensdateien = "_namensdateien"
+mkdir $verzeichnis_namensdateien -ErrorAction Ignore
+
+cd $verzeichnis_namensdateien
+
+# Namendatei anlegen und Inhalte reinschreiben
+echo "Amherd" > $namensdatei
+
+# Zwei ">" (">>") hängt das neue Material unten an
+echo "Baume-Schneider" >> $namensdatei
+echo "Berset" >> $namensdatei
+echo "Cassis" >> $namensdatei
+echo "Keller-Sutter" >> $namensdatei
+echo "Parmelin" >> $namensdatei
+echo "Roesti" >> $namensdatei # Umlaute wie das "ö" sind mega schlecht
+
+
+# Gleich noch eine zweite Namensdatei
+$namensdatei = "M122-SR23a.txt"
+echo "Burkhart" > $namensdatei
+echo "Chiesa" >> $namensdatei
+echo "Jositsch" >> $namensdatei
+echo "Noser" >> $namensdatei
+
+cd ..
+