aktuelle.kurse/m122/tools-technics/verzeichnisse-und-dateien-anlegen/README.md
Harald G. Mueller f8df45d5e9 muh
2023-01-20 18:41:56 +01:00

98 lines
2.8 KiB
Markdown

# 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.
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<hr>
<br>
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)
- [./loesung-in-powershell/einstieg-prepareFiles-02.ps1](./loesung-in-powershell/einstieg-prepareFiles-02.ps1)
- [./loesung-in-powershell/einstieg-prepareFiles-03.ps1](./loesung-in-powershell/einstieg-prepareFiles-03.ps1)
- [./loesung-in-powershell/einstieg-prepareFiles-04.ps1](./loesung-in-powershell/einstieg-prepareFiles-04.ps1)
- [./loesung-in-powershell/einstieg-prepareFiles-05.ps1](./loesung-in-powershell/einstieg-prepareFiles-05.ps1)
- [./loesung-in-powershell/einstieg-prepareFiles-06.ps1](./loesung-in-powershell/einstieg-prepareFiles-06.ps1)
- [./loesung-in-powershell/einstieg-prepareFiles-07.ps1](./loesung-in-powershell/einstieg-prepareFiles-07.ps1)