Toptorials Tutorials WeblogoLogobild kleinLogobild kleinToptorials Tutorials Weblogo
  • ALLE THEMEN IM ÜBERBLICK
  • YouTube
  • INFOS
    • SITEMAP
    • ÜBER TOPTORIALS
✕
            No results See all results

            Batch Grundkurs 005: Dateien mit Präfix umbenennen

            • Startseite
            • Tutorials Windows Automatisierung Batch Grundkurs
            • Batch Grundkurs 005: Dateien mit Präfix umbenennen

            Batch Grundkurs 005: Dateien und Ordner mit Präfix umbenennen

            Worum geht es in diesem Teil?

            In diesem fünften Teil des Batch-Grundkurses benennen wir Dateien und Ordner automatisch mit einem Präfix um.

            Ein Präfix ist ein Text, der vorne an einen Dateinamen oder Ordnernamen gesetzt wird. Dadurch kann man Dateien sehr schnell einer Kategorie, einem Projekt oder einem bestimmten Zweck zuordnen.

            Beispiel:

            rechnung.pdf

            wird zu:

            PROJEKT_rechnung.pdf

            Oder bei den SendTo-Varianten:

            Einnahmen_rechnung.pdf
            Ausgaben_rechnung.pdf
            Kasse_bon001.pdf
            Sonstige_notiz.txt
            
            Zum Beispiel:
            Vorher

            Vorher

            Nachher

            Nachher

            Das ist besonders praktisch für Scans, Belege, Downloads, Projektdateien, Verwaltungsordner oder andere Dateien, die schnell markiert oder kategorisiert werden sollen.

            Warum ist dieses Beispiel praktisch?

            Im Alltag entstehen oft Dateien mit sehr allgemeinen Namen:

            scan001.pdf
            scan002.pdf
            rechnung.pdf
            beleg.jpg
            notiz.txt

            Wenn diese Dateien später in einem gemeinsamen Ordner landen, ist nicht mehr sofort klar, wozu sie gehören. Mit einem Präfix kann man diese Dateien schneller einordnen.

            Beispiel für Belege:

            Einnahmen_scan001.pdf
            Ausgaben_rechnung.pdf
            Kasse_bon001.pdf
            Sonstige_notiz.txt

            Dadurch bleiben die Dateien auch dann verständlicher, wenn sie später verschoben, archiviert oder weiterverarbeitet werden.

            Hinweis zur Kursreihe

            Dieses Skript-Paket ist Teil einer größeren Vergleichsreihe. Die Aufgabe wird zuerst mit Batch umgesetzt. Später folgen passende Varianten mit PowerShell 7 und Python, damit man die unterschiedlichen Lösungswege direkt miteinander vergleichen kann.

            Batch        = einfacher Einstieg mit Windows-Bordmitteln
            PowerShell 7 = moderner und leistungsfähiger für Windows-Automatisierung
            Python       = sehr flexibel und auch für größere Tools geeignet

            Downloads zu diesem Teil

            Für diesen Teil gibt es zwei Downloads: die Batchdateien für diesen Kursteil und die gemeinsame Testumgebung für die Windows-Automatisierung.

            Batchdateien für Teil 005:

            Download Batch Grundkurs: 005_Dateien_mit_Praefix_umbenennen als ZIP Datei.

            Entpacken nach:

            C:\TOPTORIALS_CODE\000_Batch_Grundkurs

            Falls der Ordner noch nicht existiert, lege ihn vorher im Explorer an. Nach dem Entpacken entsteht dort automatisch:

            C:\TOPTORIALS_CODE\000_Batch_Grundkurs\005_Dateien_mit_Praefix_umbenennen

            Testumgebung für Windows-Automatisierung:

            Download TOPTORIALS_Testdaten_Windows_Automatisierung_V001.zip

            Entpacken nach:

            C:\TOPTORIALS_CODE\1000_TESTBEREICH

            Für den Batch-Grundkurs benenne den entpackten Ordner anschließend um in:

            TOPTORIALS_Testdaten_Windows_Automatisierung_Batch_V001

            Testumgebung zum Mitmachen

            Für diese Tutorialreihe gibt es eine vorbereitete Testumgebung. Damit kannst du die Batchdateien gefahrlos ausprobieren, ohne eigene wichtige Dateien verwenden zu müssen.

            Die Testumgebung ist sprachübergreifend aufgebaut. Das bedeutet: Die gleiche Grundstruktur kann später auch für die passenden PowerShell-7- und Python-Versionen verwendet werden.

            Empfohlener Speicherort für die ZIP-Datei:

            C:\TOPTORIALS_CODE\1000_TESTBEREICH

            Wenn du die ZIP-Datei dort entpackst, entsteht zunächst dieser Ordner:

            C:\TOPTORIALS_CODE\1000_TESTBEREICH\TOPTORIALS_Testdaten_Windows_Automatisierung_V001

            Für den Batch-Grundkurs benennen wir diesen entpackten Ordner um in:

            TOPTORIALS_Testdaten_Windows_Automatisierung_Batch_V001

            Für diesen Teil verwendest du dann den passenden Unterordner:

            C:\TOPTORIALS_CODE\1000_TESTBEREICH\TOPTORIALS_Testdaten_Windows_Automatisierung_Batch_V001\005_Dateien_mit_Praefix_umbenennen

            Du musst die Testumgebung aber nicht verwenden. Die Batchdateien funktionieren auch mit eigenen Dateien und Ordnern. Wichtig ist nur, dass du zuerst mit Testdaten arbeitest und nicht direkt mit wichtigen Originaldateien.

            Sicherheitshinweis

            Wichtiger Hinweis:

            Die Skripte werden auf eigene Verantwortung verwendet. Teste jedes Skript zuerst in einem separaten Testordner und niemals direkt mit wichtigen Originaldateien. Einige Skripte können Dateien umbenennen, verschieben oder neue Dateien und Ordner erstellen. Lies die Hinweise auf der jeweiligen Seite sorgfältig durch und verwende zuerst immer den Testmodus, wenn ein Skript eine _test-Version enthält.

            Dieses Skript-Paket benennt Dateien oder Ordner um. Deshalb ist der Testmodus hier besonders wichtig. Solange _test im Dateinamen steht, wird nur angezeigt, was passieren würde. Es wird noch nichts umbenannt.

            Enthaltene Skripte

            Dieses Paket enthält mehrere Varianten. Viele Dateien unterscheiden sich nur durch den verwendeten Präfix oder dadurch, ob es sich um eine Test- oder Scharf-Version handelt.

            Aktueller Ordner

            005_dateien_mit_praefix_umbenennen_test.bat
            005_dateien_mit_praefix_umbenennen_mit_log_und_clipboard_test.bat

            SendTo: markierte Elemente selbst umbenennen

            005_sendto_praefix_ausgaben_test.bat
            005_sendto_praefix_ausgaben.bat
            005_sendto_praefix_einnahmen_test.bat
            005_sendto_praefix_einnahmen.bat
            005_sendto_praefix_kasse_test.bat
            005_sendto_praefix_kasse.bat
            005_sendto_praefix_sonstige_test.bat
            005_sendto_praefix_sonstige.bat

            SendTo: Dateien im Ordnerinhalt umbenennen

            005_sendto_ordnerinhalt_praefix_ausgaben_test.bat
            005_sendto_ordnerinhalt_praefix_ausgaben.bat
            005_sendto_ordnerinhalt_praefix_einnahmen_test.bat
            005_sendto_ordnerinhalt_praefix_einnahmen.bat
            005_sendto_ordnerinhalt_praefix_kasse_test.bat
            005_sendto_ordnerinhalt_praefix_kasse.bat
            005_sendto_ordnerinhalt_praefix_sonstige_test.bat
            005_sendto_ordnerinhalt_praefix_sonstige.bat

            Welche Variante brauche ich?

            • Aktueller Ordner: Wenn alle Dateien im Ordner der Batchdatei mit einem festen Präfix umbenannt werden sollen.
            • Mit Log und Zwischenablage: Wenn zusätzlich ein Protokoll erstellt und in die Zwischenablage kopiert werden soll.
            • SendTo Elemente umbenennen: Wenn die im Explorer markierten Dateien oder Ordner selbst umbenannt werden sollen.
            • SendTo Ordnerinhalt umbenennen: Wenn markierte Ordner übergeben werden und die Dateien direkt innerhalb dieser Ordner einen Präfix bekommen sollen.

            Der wichtigste Unterschied: Elemente oder Ordnerinhalt?

            Bei Teil 005 ist dieser Unterschied sehr wichtig.

            SendTo Elemente umbenennen

            Diese Varianten benennen die markierten Elemente selbst um.

            Wenn du im Explorer diese Datei markierst:

            rechnung.pdf

            und an 005_sendto_praefix_einnahmen_test.bat sendest, würde daraus im Testmodus:

            Einnahmen_rechnung.pdf

            Wenn du einen Ordner markierst, wird der Ordner selbst umbenannt.

            SendTo Ordnerinhalt umbenennen

            Diese Varianten benennen nicht den übergebenen Ordner selbst um. Stattdessen werden die Dateien direkt innerhalb dieses Ordners verarbeitet.

            Beispiel:

            Scans
            ├── scan001.pdf
            └── scan002.pdf

            Nach Anwendung einer Ordnerinhalt-Variante mit dem Präfix Einnahmen_:

            Scans
            ├── Einnahmen_scan001.pdf
            └── Einnahmen_scan002.pdf

            Der Ordner Scans bleibt dabei unverändert.

            Verwendete Präfixe

            Die SendTo-Varianten verwenden vorbereitete Präfixe:

            Variante Präfix
            Ausgaben Ausgaben_
            Einnahmen Einnahmen_
            Kasse Kasse_
            Sonstige Sonstige_

            Die einfachen Varianten im aktuellen Ordner verwenden standardmäßig den Präfix:

            PROJEKT_

            Variante 1: Dateien im aktuellen Ordner mit Präfix umbenennen

            Die Datei heißt:

            005_dateien_mit_praefix_umbenennen_test.bat

            Diese Variante wird in den Ordner kopiert, dessen Dateien mit einem Präfix versehen werden sollen.

            Der komplette Code der einfachen Variante

            @echo off
            REM ============================================================
            REM TOPTORIALS OFFICE - Batch Grundkurs
            REM Script: 005_dateien_mit_praefix_umbenennen_test.bat
            REM Beschreibung: Benennt Dateien im aktuellen Ordner mit einem Praefix um.
            REM Autor: Chris
            REM YouTube: https://www.youtube.com/@TOPTORIALS-OFFICE
            REM Webseite: https://www.toptorials.com
            REM Version: 1.0
            REM Stand: 2026-06-27
            REM
            REM Hinweis:
            REM Solange _test im Dateinamen steht, wird nur eine Vorschau angezeigt.
            REM Fuer die echte Ausfuehrung _test aus dem Dateinamen entfernen.
            REM ============================================================
            echo.
            set "TESTMODUS=NEIN"
            set "PRAEFIX=PROJEKT_"
            set /a ANZAHL=0
            set /a UEBERSPRUNGEN=0
            
            echo %~n0 | find /i "_test" >nul
            if not errorlevel 1 set "TESTMODUS=JA"
            
            echo Dateien werden mit Praefix umbenannt...
            echo.
            echo Testmodus: %TESTMODUS%
            echo Praefix: %PRAEFIX%
            echo.
            
            if "%TESTMODUS%"=="JA" goto start
            
            echo ACHTUNG: Dieses Skript wird Dateien wirklich umbenennen.
            echo.
            set /p "ANTWORT=Zum Fortfahren JA eingeben: "
            
            if /i "%ANTWORT%"=="JA" goto start
            
            echo.
            echo Abgebrochen.
            echo.
            pause
            exit /b
            
            :start
            echo.
            
            for %%f in (*.*) do (
                if not "%%~nxf"=="%~nx0" (
                    echo %%~nxf | find /i "%PRAEFIX%" >nul
            
                    if not errorlevel 1 (
                        echo UEBERSPRUNGEN: "%%~nxf" - Praefix ist bereits enthalten
                        set /a UEBERSPRUNGEN+=1
                    ) else (
                        if exist "%PRAEFIX%%%~nxf" (
                            echo UEBERSPRUNGEN: "%%~nxf" - Zieldatei existiert bereits
                            set /a UEBERSPRUNGEN+=1
                        ) else (
                            if "%TESTMODUS%"=="JA" (
                                echo WUERDE UMBENENNEN: "%%~nxf" zu "%PRAEFIX%%%~nxf"
                                set /a ANZAHL+=1
                            ) else (
                                ren "%%~nxf" "%PRAEFIX%%%~nxf"
                                echo UMBENANNT: "%%~nxf" zu "%PRAEFIX%%%~nxf"
                                set /a ANZAHL+=1
                            )
                        )
                    )
                )
            )
            
            echo.
            echo Fertig.
            echo.
            
            if "%TESTMODUS%"=="JA" (
                echo Anzahl Dateien, die umbenannt wuerden: %ANZAHL%
                echo Anzahl Dateien, die uebersprungen wuerden: %UEBERSPRUNGEN%
                echo.
                echo Es wurde noch nichts umbenannt.
                echo Wenn alles richtig aussieht, entferne _test aus dem Dateinamen.
            ) else (
                echo Gesamt umbenannt: %ANZAHL% Dateien
                echo Uebersprungen: %UEBERSPRUNGEN% Dateien
            )
            
            echo.
            pause

            Code der einfachen Variante erklärt

            Testmodus erkennen

            set "TESTMODUS=NEIN"
            set "PRAEFIX=PROJEKT_"
            
            echo %~n0 | find /i "_test" >nul
            if not errorlevel 1 set "TESTMODUS=JA"

            Die Variable TESTMODUS steht zuerst auf NEIN. Danach wird geprüft, ob der Dateiname der Batchdatei den Text _test enthält.

            Wenn _test im Dateinamen enthalten ist, wird nur eine Vorschau angezeigt. Ohne _test wird wirklich umbenannt, allerdings erst nach einer zusätzlichen Sicherheitsabfrage.

            Der Präfix wird mit dieser Zeile festgelegt:

            set "PRAEFIX=PROJEKT_"

            Wenn du einen anderen Präfix verwenden möchtest, kannst du genau diese Zeile ändern.

            Sicherheitsabfrage bei echter Ausführung

            if "%TESTMODUS%"=="JA" goto start
            
            echo ACHTUNG: Dieses Skript wird Dateien wirklich umbenennen.
            echo.
            set /p "ANTWORT=Zum Fortfahren JA eingeben: "
            
            if /i "%ANTWORT%"=="JA" goto start

            Wenn das Skript nicht im Testmodus läuft, muss zuerst JA eingegeben werden. Erst danach werden Dateien wirklich umbenannt.

            Dateien im aktuellen Ordner durchlaufen

            for %%f in (*.*) do (
                ...
            )

            Diese Schleife verarbeitet alle Dateien im aktuellen Ordner.

            Die eigene Batchdatei wird mit dieser Prüfung ausgeschlossen:

            if not "%%~nxf"=="%~nx0" (

            %~nx0 ist der Name der aktuell laufenden Batchdatei. Dadurch benennt sich das Skript nicht selbst um.

            Prüfen, ob der Präfix bereits enthalten ist

            echo %%~nxf | find /i "%PRAEFIX%" >nul

            Mit find /i wird geprüft, ob der Präfix bereits im Dateinamen vorkommt. /i bedeutet, dass Groß- und Kleinschreibung ignoriert wird.

            Wenn der Präfix bereits enthalten ist, wird die Datei übersprungen. Dadurch wird verhindert, dass eine Datei mehrfach hintereinander verlängert wird.

            Namenskonflikte verhindern

            if exist "%PRAEFIX%%%~nxf" (
                echo UEBERSPRUNGEN: "%%~nxf" - Zieldatei existiert bereits
            )

            Bevor eine Datei umbenannt wird, prüft das Skript, ob der Zielname bereits existiert.

            Wenn die Zieldatei schon vorhanden ist, wird nicht umbenannt. Dadurch wird nichts überschrieben.

            Dateien umbenennen

            ren "%%~nxf" "%PRAEFIX%%%~nxf"

            Mit ren wird die Datei umbenannt. Der neue Name besteht aus dem Präfix und dem bisherigen Dateinamen.

            Variante 2: Dateien mit Präfix umbenennen, Log schreiben und Zwischenablage nutzen

            Die Datei heißt:

            005_dateien_mit_praefix_umbenennen_mit_log_und_clipboard_test.bat

            Diese Variante arbeitet wie die einfache Variante, erstellt aber zusätzlich eine Logdatei und kopiert deren Inhalt in die Zwischenablage.

            Der komplette Code der Log-Variante

            @echo off
            REM ============================================================
            REM TOPTORIALS OFFICE - Batch Grundkurs
            REM Script: 005_dateien_mit_praefix_umbenennen_mit_log_und_clipboard_test.bat
            REM Beschreibung: Benennt Dateien mit einem Praefix um, schreibt ein Log und kopiert es in die Zwischenablage.
            REM Autor: Chris
            REM YouTube: https://www.youtube.com/@TOPTORIALS-OFFICE
            REM Webseite: https://www.toptorials.com
            REM Version: 1.0
            REM Stand: 2026-06-27
            REM
            REM Hinweis:
            REM Solange _test im Dateinamen steht, wird nur eine Vorschau angezeigt.
            REM Fuer die echte Ausfuehrung _test aus dem Dateinamen entfernen.
            REM ============================================================
            echo.
            set "TESTMODUS=NEIN"
            set "PRAEFIX=PROJEKT_"
            set /a ANZAHL=0
            set /a UEBERSPRUNGEN=0
            
            echo %~n0 | find /i "_test" >nul
            if not errorlevel 1 set "TESTMODUS=JA"
            
            set "DATUM=%date:~-4%-%date:~3,2%-%date:~0,2%"
            set "ZEIT=%time:~0,2%-%time:~3,2%-%time:~6,2%"
            set "ZEIT=%ZEIT: =0%"
            set "LOGDATEI=umbenennprotokoll_%DATUM%_%ZEIT%.log"
            
            echo Dateien werden mit Praefix umbenannt...>>"%LOGDATEI%"
            echo Testmodus: %TESTMODUS%>>"%LOGDATEI%"
            echo Praefix: %PRAEFIX%>>"%LOGDATEI%"
            echo Logdatei: %LOGDATEI%>>"%LOGDATEI%"
            echo.>>"%LOGDATEI%"
            
            echo Dateien werden mit Praefix umbenannt...
            echo.
            echo Testmodus: %TESTMODUS%
            echo Praefix: %PRAEFIX%
            echo Logdatei: %LOGDATEI%
            echo.
            
            if "%TESTMODUS%"=="JA" goto start
            
            echo ACHTUNG: Dieses Skript wird Dateien wirklich umbenennen.
            echo.
            set /p "ANTWORT=Zum Fortfahren JA eingeben: "
            
            if /i "%ANTWORT%"=="JA" goto start
            
            echo.
            echo Abgebrochen.
            echo.
            
            echo Abgebrochen.>>"%LOGDATEI%"
            type "%LOGDATEI%" | clip
            
            pause
            exit /b
            
            :start
            echo.
            
            for %%f in (*.*) do (
                if not "%%~nxf"=="%~nx0" (
                    if not "%%~nxf"=="%LOGDATEI%" (
                        echo %%~nxf | find /i "%PRAEFIX%" >nul
            
                        if not errorlevel 1 (
                            echo UEBERSPRUNGEN: "%%~nxf" - Praefix ist bereits enthalten
                            echo UEBERSPRUNGEN: "%%~nxf" - Praefix ist bereits enthalten>>"%LOGDATEI%"
                            set /a UEBERSPRUNGEN+=1
                        ) else (
                            if exist "%PRAEFIX%%%~nxf" (
                                echo UEBERSPRUNGEN: "%%~nxf" - Zieldatei existiert bereits
                                echo UEBERSPRUNGEN: "%%~nxf" - Zieldatei existiert bereits>>"%LOGDATEI%"
                                set /a UEBERSPRUNGEN+=1
                            ) else (
                                if "%TESTMODUS%"=="JA" (
                                    echo WUERDE UMBENENNEN: "%%~nxf" zu "%PRAEFIX%%%~nxf"
                                    echo WUERDE UMBENENNEN: "%%~nxf" zu "%PRAEFIX%%%~nxf">>"%LOGDATEI%"
                                    set /a ANZAHL+=1
                                ) else (
                                    ren "%%~nxf" "%PRAEFIX%%%~nxf"
                                    echo UMBENANNT: "%%~nxf" zu "%PRAEFIX%%%~nxf"
                                    echo UMBENANNT: "%%~nxf" zu "%PRAEFIX%%%~nxf">>"%LOGDATEI%"
                                    set /a ANZAHL+=1
                                )
                            )
                        )
                    )
                )
            )
            
            echo.>>"%LOGDATEI%"
            echo Fertig.>>"%LOGDATEI%"
            
            if "%TESTMODUS%"=="JA" (
                echo Anzahl Dateien, die umbenannt wuerden: %ANZAHL%>>"%LOGDATEI%"
                echo Anzahl Dateien, die uebersprungen wuerden: %UEBERSPRUNGEN%>>"%LOGDATEI%"
                echo Es wurde noch nichts umbenannt.>>"%LOGDATEI%"
                echo Wenn alles richtig aussieht, entferne _test aus dem Dateinamen.>>"%LOGDATEI%"
            ) else (
                echo Gesamt umbenannt: %ANZAHL% Dateien>>"%LOGDATEI%"
                echo Uebersprungen: %UEBERSPRUNGEN% Dateien>>"%LOGDATEI%"
            )
            
            type "%LOGDATEI%" | clip
            
            echo.
            echo Fertig.
            echo Das Protokoll wurde erstellt:
            echo %LOGDATEI%
            echo.
            echo Der Inhalt wurde zusaetzlich in die Zwischenablage kopiert.
            echo.
            
            if "%TESTMODUS%"=="JA" (
                echo Anzahl Dateien, die umbenannt wuerden: %ANZAHL%
                echo Anzahl Dateien, die uebersprungen wuerden: %UEBERSPRUNGEN%
                echo.
                echo Es wurde noch nichts umbenannt.
                echo Wenn alles richtig aussieht, entferne _test aus dem Dateinamen.
            ) else (
                echo Gesamt umbenannt: %ANZAHL% Dateien
                echo Uebersprungen: %UEBERSPRUNGEN% Dateien
            )
            
            echo.
            pause

            Wichtige Unterschiede der Log-Variante

            Zeitstempel für die Logdatei

            set "DATUM=%date:~-4%-%date:~3,2%-%date:~0,2%"
            set "ZEIT=%time:~0,2%-%time:~3,2%-%time:~6,2%"
            set "ZEIT=%ZEIT: =0%"
            set "LOGDATEI=umbenennprotokoll_%DATUM%_%ZEIT%.log"

            Diese Zeilen erzeugen einen Zeitstempel für die Logdatei.

            Dadurch entsteht zum Beispiel ein Dateiname wie:

            umbenennprotokoll_2026-06-27_15-30-45.log

            Logdatei vom Umbenennen ausschließen

            if not "%%~nxf"=="%LOGDATEI%" (

            Die Logdatei soll nicht selbst umbenannt werden. Deshalb wird sie in der Schleife zusätzlich ausgeschlossen.

            In die Logdatei schreiben

            echo UMBENANNT: "%%~nxf" zu "%PRAEFIX%%%~nxf">>"%LOGDATEI%"

            Mit >> wird Text an die Logdatei angehängt.

            Logdatei in die Zwischenablage kopieren

            type "%LOGDATEI%" | clip

            Am Ende wird die Logdatei gelesen und in die Windows-Zwischenablage kopiert.

            Variante 3: SendTo – markierte Dateien oder Ordner selbst umbenennen

            Diese Varianten sind für das Windows-Menü Senden an gedacht.

            Sie benennen die im Explorer markierten Dateien oder Ordner selbst um.

            Es gibt diese Varianten jeweils für die Präfixe Ausgaben_, Einnahmen_, Kasse_ und Sonstige_.

            Der folgende Code zeigt stellvertretend die Variante mit Einnahmen_ im Testmodus:

            005_sendto_praefix_einnahmen_test.bat

            Der komplette Code einer typischen SendTo-Elemente-Variante

            @echo off
            REM ============================================================
            REM TOPTORIALS OFFICE - Batch Grundkurs
            REM Script: 005_sendto_praefix_einnahmen_test.bat
            REM Beschreibung: Benennt uebergebene Dateien oder Ordner mit dem Praefix Einnahmen_ um.
            REM Autor: Chris
            REM YouTube: https://www.youtube.com/@TOPTORIALS-OFFICE
            REM Webseite: https://www.toptorials.com
            REM Version: 1.0
            REM Stand: 2026-06-27
            REM
            REM Hinweis:
            REM Solange _test im Dateinamen steht, wird nur eine Vorschau angezeigt.
            REM Fuer die echte Ausfuehrung _test aus dem Dateinamen entfernen.
            REM ============================================================
            echo.
            set "TESTMODUS=NEIN"
            set "PRAEFIX=Einnahmen_"
            set /a ANZAHL=0
            set /a UEBERSPRUNGEN=0
            
            echo %~n0 | find /i "_test" >nul
            if not errorlevel 1 set "TESTMODUS=JA"
            
            if "%~1"=="" (
                echo Bitte sende Dateien oder Ordner an dieses Skript.
                echo.
                echo Du kannst im Explorer Dateien oder Ordner markieren,
                echo dann Rechtsklick - Senden an verwenden.
                echo.
                pause
                exit /b
            )
            
            echo Dateien oder Ordner werden mit Praefix umbenannt...
            echo.
            echo Praefix: %PRAEFIX%
            echo Testmodus: %TESTMODUS%
            echo.
            
            if "%TESTMODUS%"=="JA" goto start
            
            echo ACHTUNG: Dieses Skript wird Dateien oder Ordner wirklich umbenennen.
            echo.
            set /p "ANTWORT=Zum Fortfahren JA eingeben: "
            
            if /i "%ANTWORT%"=="JA" goto start
            
            echo.
            echo Abgebrochen.
            echo.
            pause
            exit /b
            
            :start
            echo.
            
            :loop
            if "%~1"=="" goto fertig
            
            set "QUELLE=%~1"
            set "ORDNER=%~dp1"
            set "NAME=%~nx1"
            set "ZIEL=%~dp1%PRAEFIX%%~nx1"
            
            echo %~nx1 | find /i "%PRAEFIX%" >nul
            if not errorlevel 1 (
                echo UEBERSPRUNGEN: "%~nx1" - Praefix ist bereits enthalten
                set /a UEBERSPRUNGEN+=1
                shift
                goto loop
            )
            
            if exist "%ZIEL%" (
                echo UEBERSPRUNGEN: "%~nx1" - Ziel existiert bereits
                set /a UEBERSPRUNGEN+=1
                shift
                goto loop
            )
            
            if "%TESTMODUS%"=="JA" (
                echo WUERDE UMBENENNEN: "%~nx1" zu "%PRAEFIX%%~nx1"
                set /a ANZAHL+=1
            ) else (
                ren "%QUELLE%" "%PRAEFIX%%~nx1"
                echo UMBENANNT: "%~nx1" zu "%PRAEFIX%%~nx1"
                set /a ANZAHL+=1
            )
            
            shift
            goto loop
            
            :fertig
            echo.
            echo Fertig.
            echo.
            
            if "%TESTMODUS%"=="JA" (
                echo Anzahl Elemente, die umbenannt wuerden: %ANZAHL%
                echo Anzahl Elemente, die uebersprungen wuerden: %UEBERSPRUNGEN%
                echo.
                echo Es wurde noch nichts umbenannt.
                echo Wenn alles richtig aussieht, entferne _test aus dem Dateinamen.
            ) else (
                echo Gesamt umbenannt: %ANZAHL% Elemente
                echo Uebersprungen: %UEBERSPRUNGEN% Elemente
            )
            
            echo.
            pause

            Code der SendTo-Elemente-Variante erklärt

            Prüfen, ob etwas übergeben wurde

            if "%~1"=="" (
                echo Bitte sende Dateien oder Ordner an dieses Skript.
                echo.
                echo Du kannst im Explorer Dateien oder Ordner markieren,
                echo dann Rechtsklick - Senden an verwenden.
                echo.
                pause
                exit /b
            )

            Diese Prüfung stellt sicher, dass überhaupt Dateien oder Ordner an das Skript übergeben wurden.

            Parameter nacheinander verarbeiten

            :loop
            if "%~1"=="" goto fertig
            
            ...
            shift
            goto loop

            Diese Schleife verarbeitet alle übergebenen Elemente nacheinander.

            shift verschiebt die Parameter. Dadurch kann das Skript mehrere markierte Dateien oder Ordner verarbeiten.

            Quelle und Ziel vorbereiten

            set "QUELLE=%~1"
            set "ORDNER=%~dp1"
            set "NAME=%~nx1"
            set "ZIEL=%~dp1%PRAEFIX%%~nx1"

            Hier werden wichtige Informationen zum aktuell übergebenen Element gespeichert:

            • QUELLE ist der vollständige übergebene Pfad.
            • ORDNER ist der Ordnerpfad des Elements.
            • NAME ist der Name des Elements.
            • ZIEL ist der neue Zielname mit Präfix.

            Umbenennen mit ren

            ren "%QUELLE%" "%PRAEFIX%%~nx1"

            Die Datei oder der Ordner wird mit ren umbenannt. Als neuer Name wird der Präfix vor den bisherigen Namen gesetzt.

            Variante 4: SendTo – Dateien im Inhalt übergebener Ordner umbenennen

            Diese Varianten sind ebenfalls für Senden an gedacht, arbeiten aber anders.

            Hier werden nicht die übergebenen Ordner selbst umbenannt. Stattdessen werden die Dateien direkt in diesen Ordnern verarbeitet.

            Es gibt diese Varianten ebenfalls für die Präfixe Ausgaben_, Einnahmen_, Kasse_ und Sonstige_.

            Der folgende Code zeigt stellvertretend die Variante mit Einnahmen_ im Testmodus:

            005_sendto_ordnerinhalt_praefix_einnahmen_test.bat

            Der komplette Code einer typischen SendTo-Ordnerinhalt-Variante

            @echo off
            REM ============================================================
            REM TOPTORIALS OFFICE - Batch Grundkurs
            REM Script: 005_sendto_ordnerinhalt_praefix_einnahmen_test.bat
            REM Beschreibung: Benennt Dateien in uebergebenen Ordnern mit dem Praefix Einnahmen_ um.
            REM Autor: Chris
            REM YouTube: https://www.youtube.com/@TOPTORIALS-OFFICE
            REM Webseite: https://www.toptorials.com
            REM Version: 1.0
            REM Stand: 2026-06-27
            REM
            REM Hinweis:
            REM Solange _test im Dateinamen steht, wird nur eine Vorschau angezeigt.
            REM Fuer die echte Ausfuehrung _test aus dem Dateinamen entfernen.
            REM ============================================================
            echo.
            set "TESTMODUS=NEIN"
            set "PRAEFIX=Einnahmen_"
            set /a ANZAHL=0
            set /a UEBERSPRUNGEN=0
            set /a ORDNER_ANZAHL=0
            
            echo %~n0 | find /i "_test" >nul
            if not errorlevel 1 set "TESTMODUS=JA"
            
            if "%~1"=="" (
                echo Bitte sende einen oder mehrere Ordner an dieses Skript.
                echo.
                echo Du kannst im Explorer einen oder mehrere Ordner markieren,
                echo dann Rechtsklick - Senden an verwenden.
                echo.
                pause
                exit /b
            )
            
            echo Dateien in uebergebenen Ordnern werden mit Praefix umbenannt...
            echo.
            echo Praefix: %PRAEFIX%
            echo Testmodus: %TESTMODUS%
            echo.
            
            if "%TESTMODUS%"=="JA" goto start
            
            echo ACHTUNG: Dieses Skript wird Dateien in den uebergebenen Ordnern wirklich umbenennen.
            echo.
            set /p "ANTWORT=Zum Fortfahren JA eingeben: "
            
            if /i "%ANTWORT%"=="JA" goto start
            
            echo.
            echo Abgebrochen.
            echo.
            pause
            exit /b
            
            :start
            echo.
            
            :ordner_loop
            if "%~1"=="" goto fertig
            
            if not exist "%~1\" (
                echo UEBERSPRUNGEN: "%~1" ist kein Ordner.
                set /a UEBERSPRUNGEN+=1
                shift
                goto ordner_loop
            )
            
            set /a ORDNER_ANZAHL+=1
            
            echo Ordner wird verarbeitet:
            echo %~1
            echo.
            
            for %%f in ("%~1\*.*") do (
                if exist "%%~f" (
                    echo %%~nxf | find /i "%PRAEFIX%" >nul
            
                    if not errorlevel 1 (
                        echo UEBERSPRUNGEN: "%%~nxf" - Praefix ist bereits enthalten
                        set /a UEBERSPRUNGEN+=1
                    ) else (
                        if exist "%%~dpf%PRAEFIX%%%~nxf" (
                            echo UEBERSPRUNGEN: "%%~nxf" - Zieldatei existiert bereits
                            set /a UEBERSPRUNGEN+=1
                        ) else (
                            if "%TESTMODUS%"=="JA" (
                                echo WUERDE UMBENENNEN: "%%~nxf" zu "%PRAEFIX%%%~nxf"
                                set /a ANZAHL+=1
                            ) else (
                                ren "%%~f" "%PRAEFIX%%%~nxf"
                                echo UMBENANNT: "%%~nxf" zu "%PRAEFIX%%%~nxf"
                                set /a ANZAHL+=1
                            )
                        )
                    )
                )
            )
            
            echo.
            shift
            goto ordner_loop
            
            :fertig
            echo.
            echo Fertig.
            echo.
            
            echo Verarbeitete Ordner: %ORDNER_ANZAHL%
            
            if "%TESTMODUS%"=="JA" (
                echo Anzahl Dateien, die umbenannt wuerden: %ANZAHL%
                echo Anzahl Elemente, die uebersprungen wuerden: %UEBERSPRUNGEN%
                echo.
                echo Es wurde noch nichts umbenannt.
                echo Wenn alles richtig aussieht, entferne _test aus dem Dateinamen.
            ) else (
                echo Gesamt umbenannt: %ANZAHL% Dateien
                echo Uebersprungen: %UEBERSPRUNGEN% Elemente
            )
            
            echo.
            pause

            Code der SendTo-Ordnerinhalt-Variante erklärt

            Nur Ordner verarbeiten

            if not exist "%~1\" (
                echo UEBERSPRUNGEN: "%~1" ist kein Ordner.
                set /a UEBERSPRUNGEN+=1
                shift
                goto ordner_loop
            )

            Diese Variante erwartet Ordner. Wenn ein übergebenes Element kein Ordner ist, wird es übersprungen.

            Mehrere Ordner nacheinander verarbeiten

            :ordner_loop
            if "%~1"=="" goto fertig
            
            ...
            shift
            goto ordner_loop

            Diese Schleife verarbeitet alle übergebenen Ordner nacheinander.

            Dateien im Ordner durchlaufen

            for %%f in ("%~1\*.*") do (
                ...
            )

            Diese Schleife verarbeitet die Dateien direkt im übergebenen Ordner.

            Unterordner werden dabei nicht rekursiv durchsucht.

            Dateien im Ordner umbenennen

            ren "%%~f" "%PRAEFIX%%%~nxf"

            Die Datei wird direkt in ihrem Ordner umbenannt. Der Ordner selbst bleibt unverändert.

            Wie werden die SendTo-Varianten eingerichtet?

            Die SendTo-Batchdateien oder Verknüpfungen davon können in den Windows-Ordner Senden an gelegt werden.

            Den SendTo-Ordner öffnet man mit:

            shell:sendto

            Danach kann man im Explorer Dateien oder Ordner markieren und mit Rechtsklick > Senden an an das gewünschte Skript übergeben.

            Was passiert im Testmodus?

            Solange _test im Dateinamen steht, wird nur angezeigt, was passieren würde.

            Beispiel:

            005_sendto_praefix_einnahmen_test.bat

            Im Testmodus erscheinen Meldungen wie:

            WUERDE UMBENENNEN: "rechnung.pdf" zu "Einnahmen_rechnung.pdf"

            Es wird noch nichts umbenannt.

            Wenn alles korrekt aussieht, kann _test aus dem Dateinamen entfernt werden. Danach fragt das Skript vor der echten Ausführung zusätzlich nach JA.

            Was passiert bei Namenskonflikten?

            Wenn der neue Zielname bereits existiert, wird das Element übersprungen.

            Beispiel:

            rechnung.pdf
            Einnahmen_rechnung.pdf

            Wenn rechnung.pdf mit Einnahmen_ umbenannt werden soll, der Zielname Einnahmen_rechnung.pdf aber bereits existiert, wird die Datei nicht umbenannt.

            Dadurch wird verhindert, dass vorhandene Dateien überschrieben werden.

            Was passiert, wenn der Präfix bereits enthalten ist?

            Wenn der Präfix bereits im Namen vorkommt, wird das Element übersprungen.

            Das verhindert, dass Dateinamen bei mehrfacher Ausführung immer länger werden.

            Beispiel:

            Einnahmen_rechnung.pdf

            wird nicht erneut zu:

            Einnahmen_Einnahmen_rechnung.pdf

            Typische Anpassungen

            Der wichtigste Anpassungspunkt ist die Präfix-Zeile:

            set "PRAEFIX=PROJEKT_"

            oder bei den SendTo-Varianten zum Beispiel:

            set "PRAEFIX=Einnahmen_"

            Wenn du einen anderen Präfix verwenden möchtest, änderst du einfach den Text zwischen dem Gleichheitszeichen und dem schließenden Anführungszeichen.

            Beispiele:

            set "PRAEFIX=Kunde_A_"
            set "PRAEFIX=Projekt_2026_"
            set "PRAEFIX=Archiv_"

            Häufige Fehler

            Die Datei wird nur im Editor geöffnet

            Dann wurde sie wahrscheinlich als Textdatei gespeichert.

            Die Datei muss zum Beispiel so heißen:

            005_dateien_mit_praefix_umbenennen_test.bat

            und nicht:

            005_dateien_mit_praefix_umbenennen_test.bat.txt

            Es wird nichts umbenannt

            Wenn _test noch im Dateinamen steht, ist das korrekt. Dann läuft das Skript im Testmodus und zeigt nur eine Vorschau an.

            Für die echte Ausführung muss _test aus dem Dateinamen entfernt werden.

            Das Skript überspringt Dateien

            Das kann mehrere Gründe haben:

            • Der Präfix ist bereits im Dateinamen enthalten.
            • Der Zielname existiert bereits.
            • Bei der Ordnerinhalt-Variante wurde kein Ordner übergeben.

            Ich habe die falsche SendTo-Variante verwendet

            Wenn ein Ordner selbst umbenannt wurde, obwohl eigentlich seine Dateien umbenannt werden sollten, wurde wahrscheinlich eine Elemente-Variante statt einer Ordnerinhalt-Variante verwendet.

            Merke:

            • 005_sendto_praefix_... benennt die markierten Elemente selbst um.
            • 005_sendto_ordnerinhalt_praefix_... benennt Dateien innerhalb markierter Ordner um.

            Was haben wir gelernt?

            In diesem Teil wurden mehrere wichtige Batch-Grundlagen gezeigt:

            ren benennt Dateien oder Ordner um.
            for kann Dateien im aktuellen Ordner durchlaufen.
            %~nx0 ist der Name der laufenden Batchdatei.
            %~1 ist der erste übergebene Parameter.
            %~dp1 ist der Ordnerpfad eines übergebenen Elements.
            %~nx1 ist der Name eines übergebenen Elements.
            find /i kann prüfen, ob ein Text bereits im Namen enthalten ist.
            if exist verhindert Namenskonflikte.
            shift verarbeitet mehrere übergebene Elemente nacheinander.
            _test im Dateinamen kann als Testmodus verwendet werden.
            type und clip kopieren ein Log in die Zwischenablage.

            Damit ist dieses Skript-Paket ein sehr praktisches Werkzeug, um Dateien, Ordner oder Ordnerinhalte schnell mit einem passenden Präfix zu versehen.

             

            Video zu diesem Tutorial:

             

            Das könnte Dich auch interessieren

            Keine Einträge gefunden

            Schreibe einen Kommentar Antwort abbrechen

            Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

            INTERESSANTE SEITEN

            • TUTORIALS SCHNELLER FINDEN
            • SCHNELLER RECHNEN LERNEN
            • MATHE AUFGABEN GENERATOR
            • LINIEN UND KARO GENERATOR
            • VORLAGEN ZUM AUSDRUCKEN
            • BINGO-SCHEIN-GENERATOR
            • MEINE WUNSCHLISTE
            • Symbole zum Kopieren

            Content

            • Microsoft Excel Tutorials
            • Microsoft Excel VBA Tutorials
            • Microsoft Word Tutorials
            • Microsoft Powerpoint Tutorials
            • Microsoft Windows 10 Tutorials
            • Google Tabellen Tutorials
            • Google Tabellen Script Tutorials
            • Google Docs Tutorials
            • LibreOffice Calc Tutorials
            • Libre Office Writer Tutorials
            • LibreOffice Impress Tutorials
            • OpenOffice Calc Tutorials
            • OpenOffice Writer Tutorials
            • OpenOffice Impress Tutorials
            • WPS Spreadsheets Tutorials
            • WPS Spreadsheets Tutorials

            Neue Beiträge

            • PowerShell 7 Grundkurs 005: Dateien mit einem Präfix umbenennen
            • Batch Grundkurs 005: Dateien mit Präfix umbenennen
            • Python Grundkurs 004: Dateien automatisch nach Dateityp sortieren
            • PowerShell 7 Grundkurs 004: Dateien automatisch nach Dateityp sortieren
            • Batch Grundkurs 004: Dateien nach Dateityp automatisch sortieren

            Neue Kommentare

            • Chris zu Python in LibreOffice Calc: Formular auslesen und auswerten
            • Detlef M. zu Python in LibreOffice Calc: Formular auslesen und auswerten
            • Johannes Hanel zu Verknüpfungen in LibreOffice Calc
            • Holfrie zu Symbole vergrößern von der Benutzeroberfläche (OpenOffice)
            • Bianca zu Tutorial Wunsch Liste
            • Wolfgang Dehmer zu Funktion zeitlich gesteuert ausführen (Google Tabellen) Script

            Schlagwörter-Wolke

            anfänger Anleitung anpassen ausrechnen auswahlliste Bedingte Formatierung berechnen Calc Datum Download Dropdownliste einfügen entfernen erstellen Excel FreeOffice Funktion google hinzufügen Jahresplan Kalender Lernvideo LibreOffice löschen Makro markieren Microsoft OpenOffice PlanMaker programmierung script spreadsheets Sverweis Tabelle tabellen Tutorial VBA Video Wenn Wenn Funktion Word wps spreadsheets Zeilen Zelle Zellen
            KONTAKT   IMPRESSUM    DATENSCHUTZERKLÄRUNG    HAFTUNGSAUSSCHLUSS (Disclaimer)   © copyright TOPTORIALS