Python Grundkurs 002: Ordner automatisch erstellen
Worum geht es in diesem Teil?
In diesem zweiten Teil des Python-Grundkurses erstellen wir automatisch mehrere Ordner.
Dafür verwenden wir eine Liste mit Ordnernamen und eine for-Schleife.
Zusätzlich gibt es in diesem Teil zwei Varianten:
01_Einfach
02_SendTo_Projektordner_erstellen
Die erste Variante erstellt eine feste Ordnerstruktur im aktuellen Ordner.
Die zweite Variante ist eine SendTo-Version. Damit kann ein Ordner über den Windows-Explorer an das Skript übergeben werden. Das Python-Skript erstellt die Projektordner dann direkt in diesem ausgewählten Zielordner.
Was ist das Ziel?
Das Skript soll mehrere Standardordner erstellen, ohne dass jeder Ordner einzeln von Hand angelegt werden muss.
Statt mehrere Ordner im Explorer manuell anzulegen, schreiben wir die Ordnernamen in eine Liste. Danach geht Python diese Liste automatisch durch und erstellt jeden Ordner, der noch nicht vorhanden ist.
Das Prinzip ist:
Ordnerliste vorbereiten
jeden Eintrag der Liste durchgehen
prüfen, ob der Ordner schon existiert
fehlende Ordner erstellen
In der einfachen Variante passiert das im aktuellen Ordner.
In der SendTo-Variante wird zusätzlich ein Zielordner übergeben. Dadurch kann man die Ordnerstruktur sehr bequem in einem ausgewählten Projektordner erstellen lassen.
Welche Ordner werden erstellt?
In diesem Beispiel wird folgende Ordnerstruktur erstellt:
01_Rohmaterial
02_Audio
03_Projektdateien
04_Grafiken
05_Export
06_Thumbnail
07_Backup
08_UmlauttestäöüßÄÖÜ
Der letzte Ordner ist zusätzlich ein kleiner Umlauttest. Damit kann man prüfen, ob Umlaute und Sonderzeichen korrekt gespeichert und angezeigt werden.

Angelegte Ordner nach dem Start der Batchdatei
Warum ist die Listen-Variante sinnvoll?
Man könnte jeden Ordner einzeln prüfen und erstellen.
Zum Beispiel:
ordner_pfad = Path("01_Rohmaterial")
if not ordner_pfad.exists():
ordner_pfad.mkdir()
Das funktioniert, wird aber schnell unübersichtlich, wenn viele Ordner erstellt werden sollen.
Mit einer Liste und einer Schleife wird das Skript deutlich besser wartbar.
Wenn später ein neuer Ordner dazukommen soll, muss nur ein neuer Eintrag in die Liste geschrieben werden.
Zum Beispiel:
"09_Notizen"
Die Schleife verarbeitet diesen Eintrag dann automatisch mit.
Hinweis zur Kursreihe
Diese Python-Reihe ist Teil einer größeren Windows-Automatisierungsreihe. Viele Aufgaben werden in mehreren Sprachen umgesetzt, damit man die unterschiedlichen Lösungswege vergleichen kann.
Geplant sind Varianten mit:
Batch
PowerShell 7
Python
Die Aufgabe aus diesem Teil gibt es also auch als Batch-Version und als PowerShell-7-Version.
Dadurch kann man sehr gut vergleichen:
Wie löst Batch die Aufgabe?
Wie löst PowerShell 7 die Aufgabe?
Wie löst Python die Aufgabe?
Downloads zu diesem Teil
Für diesen Teil gibt es zwei Varianten mit Python-Dateien und Starter-Batchdateien.
Dateien für Python Grundkurs Teil 002:
Download Python Grundkurs: 002_Ordner_erstellen als ZIP Datei.
Entpacken nach:
C:\TOPTORIALS_CODE\020_Python_Grundkurs
Falls der Ordner noch nicht existiert, lege ihn vorher im Explorer an.
Nach dem Entpacken entsteht dort:
C:\TOPTORIALS_CODE\020_Python_Grundkurs\002_Ordner_erstellen
Darin befinden sich diese beiden Unterordner:
01_Einfach
02_SendTo_Projektordner_erstellen
Testumgebung zum Mitmachen
Für diese Tutorialreihe gibt es zusätzlich eine vorbereitete Testumgebung. Für diesen Teil ist sie sehr praktisch, weil hier Ordner erstellt werden.
Die Testumgebung enthält vorbereitete Ordner und Beispieldateien für die späteren Teile des Python-Grundkurses. Dadurch kannst du die Skripte gefahrlos ausprobieren, ohne eigene wichtige Dateien verwenden zu müssen.
Die Testumgebung ist sprachübergreifend aufgebaut. Das bedeutet: Die gleiche Grundstruktur kann auch für die passenden Batch– und PowerShell-7-Versionen verwendet werden. Für den Python-Grundkurs arbeiten wir mit einer eigenen Kopie des Testdatenordners.
Testumgebung für Windows-Automatisierung:
Download TOPTORIALS_Testdaten_Windows_Automatisierung_V001.zip
Entpacken nach:
C:\TOPTORIALS_CODE\1000_TESTBEREICH
Falls der Ordner C:\TOPTORIALS_CODE\1000_TESTBEREICH noch nicht existiert, lege ihn vorher im Explorer an.
Nach dem Entpacken entsteht zunächst dieser Ordner:
C:\TOPTORIALS_CODE\1000_TESTBEREICH\TOPTORIALS_Testdaten_Windows_Automatisierung_V001
Für den Python-Grundkurs benenne den entpackten Ordner anschließend um in:
TOPTORIALS_Testdaten_Windows_Automatisierung_Python_V001
Danach sieht der Pfad zum Testdatenordner für den Python-Grundkurs zum Beispiel so aus:
C:\TOPTORIALS_CODE\1000_TESTBEREICH\TOPTORIALS_Testdaten_Windows_Automatisierung_Python_V001
Für diesen Teil kann das Skript in einem eigenen Testordner ausgeführt werden. Dadurch sieht man sofort, welche Ordner automatisch erstellt wurden.
Sicherheitshinweis
Wichtiger Hinweis:
Die Skripte werden auf eigene Verantwortung verwendet. Teste Skripte zuerst in einer separaten Testumgebung und nicht direkt mit wichtigen Originaldateien.
Dieses Skript erstellt neue Ordner. Es löscht keine Dateien und verändert keine vorhandenen Dateien. Trotzdem ist es sinnvoll, solche Skripte immer zuerst in einem Testordner auszuprobieren.
Enthaltene Dateien
Zu diesem Teil gehören zwei Varianten.
Variante 1: Einfach
01_Einfach
├── 002_ordner_erstellen.py
└── 002_ordner_erstellen_starter_batch.bat
Variante 2: SendTo-Projektordner erstellen
02_SendTo_Projektordner_erstellen
├── 002_sendto_projektordner_erstellen.py
└── 002_sendto_projektordner_erstellen_starter_batch.bat
Variante 1: Einfache Ordnerstruktur erstellen
Die einfache Variante erstellt die Ordner im aktuellen Ordner.
Diese Variante eignet sich gut für den Einstieg, weil man hier zuerst die Grundidee versteht:
Liste erstellen
Liste mit for durchgehen
prüfen, ob ein Ordner existiert
fehlende Ordner erstellen
Der komplette Code der einfachen Python-Datei
Die Datei heißt:
002_ordner_erstellen.py
# ============================================================
# TOPTORIALS OFFICE - Python Grundkurs
# Script: 002_ordner_erstellen.py
# Beschreibung: Erstellt eine feste Standardordnerstruktur im aktuellen Ordner.
# Autor: Chris
# YouTube: https://www.youtube.com/@TOPTORIALS-OFFICE
# Webseite: https://www.toptorials.com
# Version: 1.0
# Stand: 2026-07-22
#
# ============================================================
from pathlib import Path
print()
print("Standardordner werden erstellt...")
print()
ordner_liste = [
"01_Rohmaterial",
"02_Audio",
"03_Projektdateien",
"04_Grafiken",
"05_Export",
"06_Thumbnail",
"07_Backup",
"08_UmlauttestäöüßÄÖÜ"
]
for ordner in ordner_liste:
ordner_pfad = Path(ordner)
if not ordner_pfad.exists():
ordner_pfad.mkdir()
# Alternative Kurzform:
# ordner_pfad.mkdir(exist_ok=True)
print()
print("Fertig.")
print()
Code der einfachen Python-Datei erklärt
Kommentarblock
In Python beginnen einfache Kommentare mit einer Raute:
#
Der obere Bereich ist ein Kommentarblock. Er wird nicht ausgeführt, sondern enthält Informationen zum Skript.
Zum Beispiel:
# TOPTORIALS OFFICE - Python Grundkurs
# Script: 002_ordner_erstellen.py
# Beschreibung: Erstellt eine feste Standardordnerstruktur im aktuellen Ordner.
Solche Informationen sind sehr hilfreich, wenn man später viele Skripte gesammelt hat und schnell erkennen möchte, wofür eine Datei gedacht ist.
pathlib und Path importieren
Am Anfang steht:
from pathlib import Path
Damit importieren wir Path aus dem Python-Modul pathlib.
pathlib ist eine moderne Möglichkeit, mit Dateien, Ordnern und Pfaden zu arbeiten.
Mit Path können wir Pfade als eigene Objekte behandeln und danach sehr gut lesbare Methoden verwenden.
Zum Beispiel:
ordner_pfad.exists()
ordner_pfad.mkdir()
ordner_pfad.is_dir()
Text ausgeben mit print
Mit print geben wir Text im Konsolenfenster aus.
Beispiel:
print("Standardordner werden erstellt...")
Eine leere Zeile geben wir mit print() aus:
print()
Dadurch wird die Ausgabe im Fenster besser lesbar.
Die Ordnerliste
Der wichtigste neue Teil beginnt mit:
ordner_liste = [
Damit erstellen wir eine Liste mit mehreren Ordnernamen.
ordner_liste = [
"01_Rohmaterial",
"02_Audio",
"03_Projektdateien",
"04_Grafiken",
"05_Export",
"06_Thumbnail",
"07_Backup",
"08_UmlauttestäöüßÄÖÜ"
]
Die Variable heißt:
ordner_liste
In Python verwendet man für Variablennamen häufig Kleinbuchstaben und Unterstriche.
Die eckigen Klammern:
[
...
]
erstellen eine Liste.
Jeder Ordnername ist ein Textwert, also ein String.
Die Einträge werden in Python mit Kommas getrennt.
Warum Kommas in der Python-Liste?
In Python müssen Listeneinträge mit Kommas getrennt werden.
Das gilt auch dann, wenn die Einträge untereinander stehen.
Richtig ist:
ordner_liste = [
"01_Rohmaterial",
"02_Audio",
"03_Projektdateien"
]
Falsch wäre:
ordner_liste = [
"01_Rohmaterial"
"02_Audio"
"03_Projektdateien"
]
Diese Schreibweise sieht zwar ähnlich aus, ist aber nicht richtig für eine normale Liste mit mehreren einzelnen Einträgen.
Merksatz:
In Python werden Listeneinträge mit Kommas getrennt.
Einzelne Einträge aus der Liste lesen
Python zählt bei Listen ab 0.
Der erste Eintrag ist also:
ordner_liste[0]
Der zweite Eintrag ist:
ordner_liste[1]
Der dritte Eintrag ist:
ordner_liste[2]
Für die aktuelle Liste bedeutet das:
ordner_liste[0] = 01_Rohmaterial
ordner_liste[1] = 02_Audio
ordner_liste[2] = 03_Projektdateien
ordner_liste[3] = 04_Grafiken
ordner_liste[4] = 05_Export
ordner_liste[5] = 06_Thumbnail
ordner_liste[6] = 07_Backup
ordner_liste[7] = 08_UmlauttestäöüßÄÖÜ
Einrückungen in Python
Ein sehr wichtiger Punkt bei Python sind Einrückungen.
In Batch und PowerShell helfen Einrückungen vor allem der Lesbarkeit. In Python sind Einrückungen aber Teil der Sprache.
Das bedeutet: Python erkennt an der Einrückung, welche Zeilen zu einer Schleife oder zu einer if-Abfrage gehören.
Beispiel:
for ordner in ordner_liste:
ordner_pfad = Path(ordner)
if not ordner_pfad.exists():
ordner_pfad.mkdir()
Man sieht hier:
keine Einrückung = außerhalb der Schleife
4 Leerzeichen = innerhalb der for-Schleife
8 Leerzeichen = innerhalb der if-Abfrage
Python verlangt nicht technisch immer exakt 4 Leerzeichen. Wichtig ist, dass die Einrückung korrekt und einheitlich ist.
Für diesen Kurs verwenden wir aber den üblichen Standard:
4 Leerzeichen pro Ebene
Visual Studio Code macht das normalerweise automatisch richtig, auch wenn man die Tab-Taste drückt.
Wenn man mit einem einfachen Editor arbeitet, sollte man sehr genau darauf achten, nicht Tabs und Leerzeichen durcheinander zu mischen.
Falsche Einrückungen können zu Fehlern führen, zum Beispiel:
IndentationError
TabError
Die for-Schleife
Jetzt kommt die Schleife:
for ordner in ordner_liste:
ordner_pfad = Path(ordner)
if not ordner_pfad.exists():
ordner_pfad.mkdir()
Die erste Zeile lautet:
for ordner in ordner_liste:
Das kann man fast wie einen deutschen Satz lesen:
Für jeden Ordner in der Ordnerliste ...
Python geht also jeden Eintrag aus der Liste nacheinander durch.
Beim ersten Durchlauf enthält die Variable ordner diesen Wert:
01_Rohmaterial
Beim zweiten Durchlauf enthält ordner diesen Wert:
02_Audio
Beim dritten Durchlauf:
03_Projektdateien
Und so weiter.
Die Variable ordner enthält also immer nur den aktuellen Eintrag aus der Liste.
Aus einem Text einen Pfad machen
Innerhalb der Schleife steht:
ordner_pfad = Path(ordner)
Damit machen wir aus dem aktuellen Ordnernamen ein Path-Objekt.
Wenn ordner gerade diesen Text enthält:
01_Rohmaterial
dann steht in ordner_pfad ein Pfad zu diesem Ordner.
Dadurch können wir danach Methoden wie exists() und mkdir() verwenden.
Prüfen, ob ein Ordner existiert
Diese Zeile prüft, ob der Ordner noch nicht existiert:
if not ordner_pfad.exists():
Der Teil:
ordner_pfad.exists()
prüft, ob dieser Pfad existiert.
Wenn der Pfad existiert, ist das Ergebnis:
True
Wenn der Pfad nicht existiert, ist das Ergebnis:
False
Davor steht:
not
not bedeutet:
nicht
Es kehrt das Ergebnis um.
Die ganze Zeile:
if not ordner_pfad.exists():
bedeutet also:
Wenn der Ordnerpfad nicht existiert, dann ...
Oder einfacher gesagt:
Wenn dieser Ordner noch nicht vorhanden ist, dann erstelle ihn.
Ordner erstellen mit mkdir()
Wenn der Ordner noch nicht vorhanden ist, wird diese Zeile ausgeführt:
ordner_pfad.mkdir()
mkdir() erstellt den Ordner.
In diesem Skript verwenden wir zuerst die ausführliche Variante:
if not ordner_pfad.exists():
ordner_pfad.mkdir()
Dadurch sieht man sehr gut:
exists() prüft, ob der Ordner existiert
not kehrt das Ergebnis um
mkdir() erstellt den Ordner
Alternative Kurzform mit exist_ok=True
Python kann das auch kürzer schreiben:
ordner_pfad.mkdir(exist_ok=True)
Das bedeutet:
Erstelle den Ordner.
Wenn er schon existiert, ist das okay und kein Fehler.
Für diesen Grundkurs ist die ausführliche Variante besser verständlich. Die Kurzform ist aber sehr praktisch, wenn man den Ablauf später kompakter schreiben möchte.
Wichtig ist: Man sollte nicht beide Varianten gleichzeitig aktiv verwenden.
Entweder ausführlich:
if not ordner_pfad.exists():
ordner_pfad.mkdir()
oder kurz:
ordner_pfad.mkdir(exist_ok=True)
Starter-Batchdatei der einfachen Variante
Die Datei heißt:
002_ordner_erstellen_starter_batch.bat
@echo off
REM ============================================================
REM TOPTORIALS OFFICE - Python Grundkurs
REM Script: 002_ordner_erstellen_starter_batch.bat
REM Beschreibung: Startet das Python-Skript 002_ordner_erstellen.py.
REM Autor: Chris
REM YouTube: https://www.youtube.com/@TOPTORIALS-OFFICE
REM Webseite: https://www.toptorials.com
REM Version: 1.0
REM Stand: 2026-07-22
REM
REM ============================================================
chcp 65001 >nul
cd /d "%~dp0"
py "002_ordner_erstellen.py"
REM Alternative, falls py nicht funktioniert:
REM python "002_ordner_erstellen.py"
echo.
pause
Code der einfachen Starter-Batchdatei erklärt
@echo off
@echo off
Diese Zeile verhindert, dass die Befehle der Batchdatei selbst im Fenster angezeigt werden.
Codepage auf UTF-8 setzen
Diese Zeile setzt die Codepage der Eingabeaufforderung auf UTF-8:
chcp 65001 >nul
Das kann bei Umlauten und Sonderzeichen helfen.
65001 steht für UTF-8.
>nul sorgt dafür, dass die Rückmeldung von chcp nicht angezeigt wird.
In den Ordner der Starter-Batchdatei wechseln
Diese Zeile ist wichtig:
cd /d "%~dp0"
%~dp0 steht in einer Batchdatei für den Ordner, in dem die Batchdatei selbst liegt.
Wichtig: %~dp0 enthält bereits den abschließenden Backslash.
Deshalb wechseln wir hier zuerst mit cd /d "%~dp0" in den Ordner der Starter-Batchdatei und starten danach die Python-Datei nur noch über ihren Dateinamen.
Das ist übersichtlicher und vermeidet doppelte Backslashes im Pfad.
/d sorgt dafür, dass der Ordnerwechsel auch funktioniert, wenn dabei das Laufwerk gewechselt werden muss.
Python-Skript starten
Danach starten wir die Python-Datei:
py "002_ordner_erstellen.py"
py startet Python über den Python Launcher.
Falls py auf einem System nicht funktioniert, gibt es eine Alternative:
REM python "002_ordner_erstellen.py"
Diese Zeile ist durch REM auskommentiert.
Wenn man sie verwenden möchte, müsste man die py-Zeile deaktivieren und diese Zeile aktivieren.
Fenster offen halten
Am Ende steht:
pause
Dadurch bleibt das Fenster offen, bis eine Taste gedrückt wird.
Das ist besonders wichtig, damit Ausgaben und Fehlermeldungen sichtbar bleiben.
Variante 2: Projektordner über SendTo erstellen
Die zweite Variante ist praktischer, wenn die Ordnerstruktur nicht im Skriptordner erstellt werden soll, sondern in einem ausgewählten Zielordner.
Die Idee ist:
Im Explorer einen Ordner auswählen
Rechtsklick auf den Ordner
Senden an
Starter-Batchdatei auswählen
Python erstellt die Projektordner in diesem Zielordner
Dadurch wird die Variante flexibler.
Die einfache Variante erstellt Ordner im aktuellen Ordner.
Die SendTo-Variante erstellt Ordner in einem übergebenen Ordner.
Der komplette Code der SendTo-Python-Datei
Die Datei heißt:
002_sendto_projektordner_erstellen.py
# ============================================================
# TOPTORIALS OFFICE - Python Grundkurs
# Script: 002_sendto_projektordner_erstellen.py
# Beschreibung: Erstellt eine Creator-Ordnerstruktur in einem übergebenen Ordner.
# Autor: Chris
# YouTube: https://www.youtube.com/@TOPTORIALS-OFFICE
# Webseite: https://www.toptorials.com
# Version: 1.0
# Stand: 2026-07-22
#
# ============================================================
from pathlib import Path
import sys
print()
if len(sys.argv) < 2:
print("Bitte übergib einen Ordner.")
print()
print("Du kannst zum Beispiel einen Ordner auf die Starter-Batchdatei ziehen")
print("oder Rechtsklick - Senden an verwenden.")
print()
input("Drücke Enter zum Beenden")
sys.exit()
zielordner = Path(sys.argv[1])
if not zielordner.is_dir():
print("Der übergebene Pfad ist kein Ordner:")
print(zielordner)
print()
input("Drücke Enter zum Beenden")
sys.exit()
print("Creator-Ordnerstruktur wird erstellt in:")
print(zielordner)
print()
ordner_liste = [
"01_Rohmaterial",
"02_Audio",
"03_Projektdateien",
"04_Grafiken",
"05_Export",
"06_Thumbnail",
"07_Backup",
"08_UmlauttestäöüßÄÖÜ"
]
for ordner in ordner_liste:
ordner_pfad = zielordner / ordner
if not ordner_pfad.exists():
ordner_pfad.mkdir()
# Alternative Kurzform:
# ordner_pfad.mkdir(exist_ok=True)
print()
print("Fertig.")
print()
input("Drücke Enter zum Beenden")
Code der SendTo-Python-Datei erklärt
sys importieren
In der SendTo-Variante steht zusätzlich:
import sys
Das Modul sys brauchen wir, um auf die übergebenen Startparameter zugreifen zu können.
Diese Parameter stehen in:
sys.argv
Prüfen, ob ein Parameter übergeben wurde
Diese Zeile prüft, ob überhaupt ein Zielordner übergeben wurde:
if len(sys.argv) < 2:
len() gibt die Anzahl der Einträge zurück.
sys.argv enthält die Startinformationen des Skripts.
Dabei gilt:
sys.argv[0] = Name oder Pfad des Python-Skripts
sys.argv[1] = erster übergebener Parameter
Wenn len(sys.argv) kleiner als 2 ist, gibt es keinen ersten übergebenen Parameter.
Dann wurde kein Zielordner übergeben.
In diesem Fall zeigt das Skript eine Meldung an und beendet sich mit:
sys.exit()
Zielordner aus dem ersten Parameter erstellen
Wenn ein Parameter übergeben wurde, wird daraus ein Pfadobjekt erstellt:
zielordner = Path(sys.argv[1])
sys.argv[1] enthält den ersten übergebenen Wert.
In unserem Fall ist das der Zielordner.
Mit Path(...) machen wir daraus ein Path-Objekt, damit wir danach gut lesbare Methoden wie is_dir() verwenden können.
Prüfen, ob der Zielordner wirklich ein Ordner ist
Diese Zeile prüft, ob der übergebene Pfad wirklich ein Ordner ist:
if not zielordner.is_dir():
is_dir() prüft, ob der Pfad ein Ordner ist.
Wenn der übergebene Pfad kein Ordner ist, zeigt das Skript eine Fehlermeldung an und beendet sich.
Das entspricht vom Zweck her ungefähr der PowerShell-Prüfung:
Test-Path -Path $Zielordner -PathType Container
Für normale Windows-Pfade kann man sich merken:
PowerShell: -PathType Container
Python: is_dir()
Ziel anzeigen
Wenn der Zielordner gültig ist, gibt das Skript aus:
print("Creator-Ordnerstruktur wird erstellt in:")
print(zielordner)
print()
Dadurch sieht man im Fenster, in welchem Zielordner die Ordnerstruktur erstellt wird.
Vollständigen Ordnerpfad zusammensetzen
In der Schleife steht bei der SendTo-Variante:
ordner_pfad = zielordner / ordner
Das ist eine sehr gut lesbare Schreibweise von pathlib.
Damit wird aus dem Zielordner und dem aktuellen Ordnernamen ein vollständiger Pfad.
Beispiel:
zielordner = C:\Testprojekt
ordner = 01_Rohmaterial
Daraus wird:
C:\Testprojekt\01_Rohmaterial
Vom Grundgedanken her entspricht das ungefähr Join-Path in PowerShell.
PowerShell:
$ordnerPfad = Join-Path -Path $Zielordner -ChildPath $ordner
Python:
ordner_pfad = zielordner / ordner
Mehrere Parameter in Python
In diesem Tutorial verwenden wir bewusst nur einen Zielordner.
Grundsätzlich könnte Python aber auch mehrere übergebene Parameter verarbeiten.
Einzelne Parameter wären:
sys.argv[1] = erster Parameter
sys.argv[2] = zweiter Parameter
sys.argv[3] = dritter Parameter
Alle übergebenen Parameter ohne den Skriptnamen bekommt man mit:
sys.argv[1:]
Das bedeutet:
Nimm alle Einträge ab Index 1.
Das wäre vergleichbar mit einer Liste aller übergebenen Werte.
Für diese einfache SendTo-Variante bleibt es aber bei einem Zielordner.
Starter-Batchdatei der SendTo-Variante
Die Datei heißt:
002_sendto_projektordner_erstellen_starter_batch.bat
@echo off
REM ============================================================
REM TOPTORIALS OFFICE - Python Grundkurs
REM Script: 002_sendto_projektordner_erstellen_starter_batch.bat
REM Beschreibung: Startet das Python-SendTo-Skript.
REM Autor: Chris
REM YouTube: https://www.youtube.com/@TOPTORIALS-OFFICE
REM Webseite: https://www.toptorials.com
REM Version: 1.0
REM Stand: 2026-07-22
REM
REM ============================================================
chcp 65001 >nul
cd /d "%~dp0"
py "002_sendto_projektordner_erstellen.py" "%~1"
REM Alternative, falls py nicht funktioniert:
REM python "002_sendto_projektordner_erstellen.py" "%~1"
Code der SendTo-Starter-Batchdatei erklärt
In den Ordner der Starter-Batchdatei wechseln
Auch hier wechseln wir zuerst in den Ordner der Starter-Batchdatei:
cd /d "%~dp0"
Dadurch kann das Python-Skript anschließend über den Dateinamen gestartet werden.
Python-Skript starten und Zielordner übergeben
Der wichtigste Befehl ist:
py "002_sendto_projektordner_erstellen.py" "%~1"
Der erste Teil startet das Python-Skript:
py "002_sendto_projektordner_erstellen.py"
Am Ende steht:
"%~1"
Das ist der erste übergebene Parameter aus der Batchdatei.
Wenn man im Explorer einen Ordner über Senden an an die Starter-Batchdatei übergibt, landet dieser Ordnerpfad in %1.
Mit %~1 wird der erste Parameter ohne äußere Anführungszeichen übernommen.
Danach setzen wir selbst wieder Anführungszeichen darum:
"%~1"
Dadurch bleiben auch Pfade mit Leerzeichen sauber erhalten.
Dieser Wert wird an Python weitergegeben und landet dort in:
sys.argv[1]
Was wäre bei mehreren übergebenen Ordnern?
Für dieses Tutorial verwenden wir bewusst einen Zielordner.
Dafür ist diese Schreibweise richtig:
"%~1"
Wenn man später mehrere übergebene Parameter weitergeben möchte, verwendet man in Batch normalerweise:
%*
Das steht für alle übergebenen Parameter.
In Python könnte man diese Werte dann mit:
sys.argv[1:]
als Liste übernehmen.
Merksatz:
%1 = erster Parameter
%~1 = erster Parameter ohne äußere Anführungszeichen
%* = alle Parameter
sys.argv[0] = Skriptname
sys.argv[1] = erster Parameter
sys.argv[1:] = alle Parameter ohne Skriptname
SendTo-Verknüpfung einrichten
Damit die SendTo-Variante bequem über den Explorer genutzt werden kann, kann eine Verknüpfung zur Starter-Batchdatei im SendTo-Ordner abgelegt werden.
Den SendTo-Ordner kann man über Ausführen öffnen:
shell:sendto
Dazu:
Windows-Taste + R
shell:sendto eingeben
Enter drücken
In diesen Ordner kann man eine Verknüpfung zu dieser Datei legen:
002_sendto_projektordner_erstellen_starter_batch.bat
Danach kann man im Explorer einen Ordner mit der rechten Maustaste anklicken und über Senden an die Projektordner erstellen lassen.
Was passiert beim Ausführen der SendTo-Variante?
Wenn die SendTo-Variante gestartet wird, passiert Folgendes:
Ein Ordner wird an die Starter-Batchdatei übergeben.
Die Batchdatei wechselt in ihren eigenen Ordner.
Die Batchdatei startet das Python-Skript mit py.
Der übergebene Ordner wird an Python weitergegeben.
Python speichert den Pfad in sys.argv[1].
Aus sys.argv[1] wird ein Path-Objekt.
Das Skript prüft, ob der Pfad wirklich ein Ordner ist.
Die Ordnerliste wird geladen.
Für jeden Ordnernamen wird ein vollständiger Pfad gebaut.
Fehlende Ordner werden mit mkdir() erstellt.
Am Ende wartet input auf Enter.
Typische Fehler
Python wurde nicht gefunden
Wenn beim Starten der Batchdatei eine Meldung erscheint, dass py oder python nicht gefunden wurde, ist Python wahrscheinlich nicht installiert oder nicht im Systempfad verfügbar.
Prüfe in der Eingabeaufforderung:
py --version
python --version
Wenn das nicht funktioniert, installiere Python zuerst.
Es wurde kein Ordner übergeben
Wenn die SendTo-Starter-Batchdatei direkt per Doppelklick gestartet wird, wurde kein Zielordner übergeben.
Dann zeigt das Skript diese Meldung:
Bitte übergib einen Ordner.
Die SendTo-Variante ist dafür gedacht, dass ein Ordner an das Skript übergeben wird.
Zum Beispiel über:
Rechtsklick auf Ordner
Senden an
Starter-Batchdatei auswählen
Der übergebene Pfad ist kein Ordner
Wenn kein Ordner, sondern etwas anderes übergeben wird, erkennt das Skript das mit:
zielordner.is_dir()
Dadurch wird geprüft, ob der übergebene Pfad wirklich ein Ordner ist.
Die Datei heißt versehentlich .py.txt
Wenn die Datei im Editor gespeichert wurde, kann es passieren, dass sie versehentlich so heißt:
002_ordner_erstellen.py.txt
Richtig ist:
002_ordner_erstellen.py
oder bei der SendTo-Variante:
002_sendto_projektordner_erstellen.py
Blende im Explorer am besten die Dateinamenerweiterungen ein, damit du die echte Endung sehen kannst.
Falsche Einrückung
Wenn die Einrückung nicht stimmt, kann Python einen Fehler ausgeben.
Typische Fehlermeldungen sind:
IndentationError
TabError
Achte darauf, dass Codeblöcke sauber eingerückt sind.
Für diesen Kurs gilt:
4 Leerzeichen pro Ebene
Tabs und Leerzeichen nicht mischen
Umlaute sehen falsch aus
Wenn Umlaute wie äöüß falsch angezeigt werden, kann das mit der Kodierung der Datei oder mit der verwendeten Konsole zusammenhängen.
Für diese Kursreihe empfiehlt es sich, die Dateien als UTF-8 zu speichern.
In VS Code sieht man die Kodierung normalerweise unten rechts in der Statusleiste. Dort sollte UTF-8 stehen.
Einträge in der Liste ohne Kommas
Diese Schreibweise ist falsch:
ordner_liste = [
"01_Rohmaterial"
"02_Audio"
"03_Projektdateien"
]
Richtig ist:
ordner_liste = [
"01_Rohmaterial",
"02_Audio",
"03_Projektdateien"
]
Nützliche Python-Begriffe aus diesem Teil
| Begriff | Wofür? |
|---|---|
from pathlib import Path |
Importiert moderne Pfadfunktionen |
print() |
Gibt Text oder Leerzeilen aus |
[ ... ] |
Erstellt eine Liste |
for |
Geht Einträge nacheinander durch |
Path(...) |
Erstellt ein Pfadobjekt |
exists() |
Prüft, ob ein Pfad existiert |
is_dir() |
Prüft, ob ein Pfad ein Ordner ist |
mkdir() |
Erstellt einen Ordner |
exist_ok=True |
Kein Fehler, wenn der Ordner schon existiert |
import sys |
Ermöglicht Zugriff auf Startparameter |
sys.argv |
Enthält übergebene Parameter |
sys.exit() |
Beendet das Skript |
Was haben wir gelernt?
In diesem Teil wurden mehrere wichtige Grundlagen gezeigt:
Eine Liste kann mit [ ... ] erstellt werden.
Listeneinträge werden in Python mit Kommas getrennt.
Python zählt Listeneinträge ab 0.
Einrückungen sind in Python Teil der Sprache.
Üblich sind 4 Leerzeichen pro Ebene.
for geht eine Liste Eintrag für Eintrag durch.
ordner enthält immer den aktuellen Eintrag aus der Liste.
Path(ordner) erstellt ein Pfadobjekt.
exists() prüft, ob ein Pfad existiert.
not bedeutet nicht und kehrt ein Ergebnis um.
mkdir() erstellt einen Ordner.
mkdir(exist_ok=True) ist eine mögliche Kurzform.
import sys ermöglicht Zugriff auf Startparameter.
sys.argv[1] enthält den ersten übergebenen Parameter.
is_dir() prüft, ob der Zielpfad wirklich ein Ordner ist.
zielordner / ordner setzt Pfade mit pathlib sauber zusammen.
%~1 steht in Batch für den ersten übergebenen Parameter ohne äußere Anführungszeichen.
Die Starter-Batchdatei startet Python kontrolliert mit py.
Damit haben wir nicht nur eine einfache Ordnerstruktur mit Python erstellt, sondern auch eine praktischere SendTo-Variante gebaut.
In den nächsten Teilen werden wir weiter mit Dateien, Ordnern, Listen und später auch mit ausgewählten Dateien arbeiten.
Video zu diesem Tutorial:
Das könnte Dich auch interessieren
Keine Einträge gefunden

