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

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.