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

            Batch Grundkurs 003: Dateiliste erstellen und in Zwischenablage kopieren

            • Startseite
            • Tutorials Windows Automatisierung Batch Grundkurs
            • Batch Grundkurs 003: Dateiliste erstellen und in Zwischenablage kopieren

            Batch Grundkurs 003: Dateilisten erstellen und in die Zwischenablage kopieren

            Worum geht es in diesem Teil?

            In diesem dritten Teil des Batch-Grundkurses erstellen wir Dateilisten und Pfadlisten mit Batchdateien.

            Das ist im Alltag sehr praktisch, wenn man schnell eine Übersicht über Dateien, Ordner oder komplette Ordnerstrukturen benötigt. Solche Listen kann man zum Beispiel für Dokumentationen, Projektübersichten, Support-Anfragen, E-Mails, Webseiten, ChatGPT-Abfragen oder interne Arbeitsabläufe verwenden.

            In diesem Teil gibt es mehrere Varianten:

            • eine einfache Dateiliste des aktuellen Ordners als Textdatei
            • eine Dateiliste des aktuellen Ordners als Textdatei und zusätzlich in der Zwischenablage
            • eine SendTo-Variante für die Namen markierter Dateien und Ordner
            • eine SendTo-Variante für die vollständigen Pfade markierter Dateien und Ordner
            • eine SendTo-Variante für eine rekursive Dateiliste als Textdatei
            • eine SendTo-Variante für rekursive relative Pfade in der Zwischenablage
            • eine SendTo-Variante für rekursive absolute Pfade in der Zwischenablage

            Warum ist dieses Beispiel praktisch?

            Eine Dateiliste klingt zunächst einfach, ist aber im Alltag extrem nützlich. Man kann damit sehr schnell dokumentieren, welche Dateien in einem Ordner liegen oder welche Dateien und Ordner im Explorer markiert wurden.

            Beispiele für typische Anwendungsfälle:

            Dateinamen für eine Dokumentation sammeln
            Pfade für eine E-Mail oder einen Chat kopieren
            Ordnerstrukturen für Support oder Tutorials ausgeben
            rekursive Dateilisten für Projektordner erstellen
            Dateien für spätere Verarbeitung vorbereiten
            Ordnerinhalte mit ChatGPT besprechen
            Dateistrukturen für Webseiten oder Kursmaterial dokumentieren

            Gerade die Clipboard-Varianten sind sehr praktisch, weil man die Ausgabe direkt in ein anderes Programm einfügen kann, ohne erst eine Textdatei öffnen zu müssen.

            Browseransicht und erstellte Dateiliste

            Browseransicht und erstellte Dateiliste

            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 003:

            Download Batch Grundkurs: 003_Dateiliste_erstellen 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\003_Dateiliste_erstellen

            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. Dadurch lassen sich die unterschiedlichen Lösungen besser miteinander vergleichen.

            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

            Danach sieht der Pfad zum Testdatenordner für den Batch-Grundkurs zum Beispiel so aus:

            C:\TOPTORIALS_CODE\1000_TESTBEREICH\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\003_Dateiliste_erstellen

            Du musst die Testumgebung aber nicht verwenden. Die Batchdateien funktionieren auch mit eigenen Ordnern. Wichtig ist nur, dass du zuerst mit Testordnern 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 spätere 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 dritte Skript-Paket ist noch relativ ungefährlich, weil keine vorhandenen Dateien umbenannt, verschoben oder gelöscht werden. Einige Varianten erstellen allerdings eine Textdatei namens dateiliste.txt oder dateiliste_rekursiv.txt. Wenn eine solche Datei bereits existiert, kann sie durch die neue Ausgabe ersetzt werden.

            Enthaltene Skripte

            Zu diesem Teil gehören sieben Batchdateien:

            03_dateiliste_erstellen.bat
            03_dateiliste_erstellen_in_clipboard.bat
            003_sendto_markierte_elemente_namen_in_clipboard.bat
            003_sendto_markierte_elemente_pfade_in_clipboard.bat
            003_sendto_ordner_rekursiv_als_txt.bat
            003_sendto_ordner_rekursiv_relative_pfade_in_clipboard.bat
            003_sendto_ordner_rekursiv_absolute_pfade_in_clipboard.bat

            Variante 1: Einfache Dateiliste als Textdatei

            Die erste Variante erstellt eine einfache Dateiliste des aktuellen Ordners.

            Die Datei heißt:

            03_dateiliste_erstellen.bat

            Diese Batchdatei wird direkt in den Ordner kopiert, dessen Dateien aufgelistet werden sollen. Beim Start wird die Datei dateiliste.txt erstellt.

            Wenn du die vorbereitete Testumgebung verwendest, kannst du diese Variante zum Beispiel in einem passenden Unterordner von Teil 003 testen:

            C:\TOPTORIALS_CODE\1000_TESTBEREICH\TOPTORIALS_Testdaten_Windows_Automatisierung_Batch_V001\003_Dateiliste_erstellen

            Der komplette Code der einfachen Variante

            @echo off
            REM ============================================================
            REM TOPTORIALS OFFICE - Batch Grundkurs
            REM Script: 03_dateiliste_erstellen.bat
            REM Beschreibung: Erstellt eine Dateiliste des aktuellen Ordners als Textdatei.
            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 ============================================================
            echo.
            :: Ändert die Codepage auf UTF-8
            chcp 65001 >nul
            
            ::Ändert die Codepage auf Windows-1252 (ANSI)
            ::chcp 1252 >nul
            
            echo Dateiliste wird erstellt...
            echo.
            
            dir /b /a-d > dateiliste.txt
            
            echo Fertig.
            echo Die Datei dateiliste.txt wurde erstellt.
            echo.
            pause

            Code der einfachen Variante erklärt

            @echo off

            @echo off

            Diese Zeile sorgt dafür, dass die Befehle selbst nicht im Fenster angezeigt werden. Dadurch bleibt die Ausgabe im Konsolenfenster übersichtlicher.

            Kommentarblock mit REM

            REM ============================================================
            REM TOPTORIALS OFFICE - Batch Grundkurs
            REM Script: 03_dateiliste_erstellen.bat
            REM Beschreibung: Erstellt eine Dateiliste des aktuellen Ordners als Textdatei.
            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 ============================================================

            Der Kommentarblock beschreibt das Skript. Er wird nicht ausgeführt, sondern dient nur zur Information.

            chcp 65001 >nul

            chcp 65001 >nul

            Mit chcp wird die Codepage der Eingabeaufforderung geändert. 65001 steht für UTF-8. Das kann bei Umlauten und Sonderzeichen hilfreich sein.

            Das >nul unterdrückt die normale Ausgabe des Befehls im Fenster.

            Dateiliste erstellen

            dir /b /a-d > dateiliste.txt

            Das ist die wichtigste Zeile dieser Variante.

            dir listet den Inhalt eines Ordners auf.

            Die Option /b steht für eine einfache Ausgabe ohne zusätzliche Informationen. Es werden also nur die Namen ausgegeben.

            Die Option /a-d sorgt dafür, dass nur Dateien aufgelistet werden. Ordner werden dabei ausgeschlossen.

            Das Zeichen > leitet die Ausgabe in eine Datei um. In diesem Fall wird die Ausgabe in die Datei dateiliste.txt geschrieben.

            Das bedeutet:

            Liste alle Dateien im aktuellen Ordner auf
            und schreibe diese Liste in dateiliste.txt.

            Fertigmeldung und Pause

            echo Fertig.
            echo Die Datei dateiliste.txt wurde erstellt.
            echo.
            pause

            Diese Zeilen zeigen an, dass das Skript abgeschlossen ist. pause sorgt dafür, dass das Fenster offen bleibt, bis eine Taste gedrückt wird.

            Variante 2: Dateiliste als Textdatei und zusätzlich in die Zwischenablage

            Die zweite Variante erstellt ebenfalls eine Datei dateiliste.txt, kopiert den Inhalt aber zusätzlich in die Zwischenablage.

            Dadurch kann man die Dateiliste sofort in ein anderes Programm einfügen, zum Beispiel in einen Texteditor, ein Dokument, eine E-Mail oder einen Chat.

            Der komplette Code der Clipboard-Variante

            @echo off
            REM ============================================================
            REM TOPTORIALS OFFICE - Batch Grundkurs
            REM Script: 03_dateiliste_erstellen_in_clipboard.bat
            REM Beschreibung: Erstellt eine Dateiliste und kopiert sie zusaetzlich 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 ============================================================
            echo.
            :: Ändert die Codepage auf UTF-8
            chcp 65001 >nul
            
            ::Ändert die Codepage auf Windows-1252 (ANSI)
            ::chcp 1252 >nul
            
            echo Dateiliste wird erstellt...
            echo.
            
            dir /b /a-d > dateiliste.txt
            type dateiliste.txt | clip
            
            echo Fertig.
            echo Die Datei dateiliste.txt wurde erstellt.
            echo Der Inhalt wurde zusaetzlich in die Zwischenablage kopiert.
            echo.
            pause

            Code der Clipboard-Variante erklärt

            Der größte Teil dieser Variante ist identisch mit der einfachen Version. Neu ist diese Zeile:

            type dateiliste.txt | clip

            type gibt den Inhalt einer Textdatei aus.

            Mit dem senkrechten Strich | wird diese Ausgabe an einen weiteren Befehl weitergegeben. Das nennt man Pipe.

            clip übernimmt die Ausgabe und kopiert sie in die Windows-Zwischenablage.

            Die Zeile bedeutet also:

            Lies den Inhalt von dateiliste.txt
            und kopiere ihn in die Zwischenablage.

            Variante 3: Namen markierter Elemente in die Zwischenablage kopieren

            Diese Variante ist für das Windows-Menü Senden an gedacht.

            Die Datei heißt:

            003_sendto_markierte_elemente_namen_in_clipboard.bat

            Damit kann man im Explorer mehrere Dateien oder Ordner markieren und deren Namen in die Zwischenablage kopieren.

            Es werden nur die Namen kopiert, nicht die kompletten Pfade.

            Beispielausgabe:

            rechnung.pdf
            bilder
            notiz.txt

            Der komplette Code dieser Variante

            @echo off
            REM ============================================================
            REM TOPTORIALS OFFICE - Batch Grundkurs
            REM Script: 003_sendto_markierte_elemente_namen_in_clipboard.bat
            REM Beschreibung: Kopiert die Namen markierter Dateien und Ordner 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.
            :: Behebt das Umlautproblem (für ANSI/Windows-1252 codierte Skripte)
            chcp 1252 >nul
            
            if "%~1"=="" (
                echo Bitte markiere Dateien oder Ordner und sende sie an dieses Skript.
                echo.
                pause
                exit /b
            )
            
            set "AUSGABE=%temp%\toptorials_markierte_elemente.txt"
            
            if exist "%AUSGABE%" del "%AUSGABE%"
            
            :loop
            if "%~1"=="" goto fertig
            
            echo %~nx1>>"%AUSGABE%"
            
            shift
            goto loop
            
            :fertig
            type "%AUSGABE%" | clip
            
            echo Fertig.
            echo Die Namen der markierten Elemente wurden in die Zwischenablage kopiert.
            echo.
            pause

            Code der Namen-SendTo-Variante erklärt

            Prüfen, ob etwas übergeben wurde

            if "%~1"=="" (
                echo Bitte markiere Dateien oder Ordner und sende sie an dieses Skript.
                echo.
                pause
                exit /b
            )

            %~1 steht für das erste übergebene Element. Wenn nichts übergeben wurde, zeigt das Skript einen Hinweis an und beendet sich.

            Temporäre Ausgabedatei festlegen

            set "AUSGABE=%temp%\toptorials_markierte_elemente.txt"

            Hier wird der Pfad zu einer temporären Ausgabedatei festgelegt.

            %temp% ist der temporäre Ordner des aktuellen Windows-Benutzers. Dort kann das Skript kurz eine Hilfsdatei erstellen.

            Alte temporäre Datei löschen

            if exist "%AUSGABE%" del "%AUSGABE%"

            Falls die temporäre Datei bereits vorhanden ist, wird sie zuerst gelöscht. Dadurch startet das Skript mit einer leeren Ausgabedatei.

            Schleife über alle übergebenen Elemente

            :loop
            if "%~1"=="" goto fertig
            
            echo %~nx1>>"%AUSGABE%"
            
            shift
            goto loop

            Dieser Bereich ist eine einfache Schleife.

            %~nx1 gibt nur den Namen und die Erweiterung des aktuellen Elements aus. Der Pfad wird dabei weggelassen.

            >> hängt die Ausgabe an die Datei an. Dadurch wird nicht jedes Mal überschrieben, sondern jede neue Zeile ergänzt.

            shift verschiebt die Parameter weiter. Aus dem zweiten übergebenen Element wird dadurch das neue erste Element.

            So kann das Skript alle markierten Dateien und Ordner nacheinander verarbeiten.

            In die Zwischenablage kopieren

            type "%AUSGABE%" | clip

            Der Inhalt der temporären Ausgabedatei wird gelesen und in die Zwischenablage kopiert.

            Variante 4: Pfade markierter Elemente in die Zwischenablage kopieren

            Diese Variante arbeitet ähnlich wie die Namen-Variante. Sie kopiert aber nicht nur die Namen, sondern die vollständigen Pfade der markierten Dateien und Ordner.

            Die Datei heißt:

            003_sendto_markierte_elemente_pfade_in_clipboard.bat

            Beispielausgabe:

            C:\Beispiele\rechnung.pdf
            C:\Beispiele\bilder
            C:\Beispiele\notiz.txt

            Der komplette Code dieser Variante

            @echo off
            REM ============================================================
            REM TOPTORIALS OFFICE - Batch Grundkurs
            REM Script: 003_sendto_markierte_elemente_pfade_in_clipboard.bat
            REM Beschreibung: Kopiert die vollstaendigen Pfade markierter Dateien und Ordner 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.
            :: Behebt das Umlautproblem (für ANSI/Windows-1252 codierte Skripte)
            chcp 1252 >nul
            
            if "%~1"=="" (
                echo Bitte markiere Dateien oder Ordner und sende sie an dieses Skript.
                echo.
                pause
                exit /b
            )
            
            set "AUSGABE=%temp%\toptorials_markierte_elemente.txt"
            
            if exist "%AUSGABE%" del "%AUSGABE%"
            
            :loop
            if "%~1"=="" goto fertig
            
            echo %~1>>"%AUSGABE%"
            
            shift
            goto loop
            
            :fertig
            type "%AUSGABE%" | clip
            
            echo Fertig.
            echo Die markierten Elemente wurden in die Zwischenablage kopiert.
            echo.
            pause

            Unterschied zwischen Namen und Pfaden

            Der wichtigste Unterschied liegt in dieser Zeile.

            Namen-Variante:

            echo %~nx1>>"%AUSGABE%"

            Pfad-Variante:

            echo %~1>>"%AUSGABE%"

            %~nx1 gibt nur den Namen mit Dateiendung aus.

            %~1 gibt den übergebenen Parameter aus. Bei SendTo ist das normalerweise der vollständige Pfad.

            Variante 5: Rekursive Dateiliste als Textdatei

            Diese Variante erstellt eine rekursive Liste eines übergebenen Ordners als Textdatei.

            Die Datei heißt:

            003_sendto_ordner_rekursiv_als_txt.bat

            Diese Variante erwartet einen Ordner. Im übergebenen Ordner wird die Datei dateiliste_rekursiv.txt erstellt. Der Inhalt wird zusätzlich in die Zwischenablage kopiert.

            Der komplette Code dieser Variante

            @echo off
            REM ============================================================
            REM TOPTORIALS OFFICE - Batch Grundkurs
            REM Script: 003_sendto_ordner_rekursiv_als_txt.bat
            REM Beschreibung: Erstellt eine rekursive Dateiliste fuer einen uebergebenen Ordner als Textdatei.
            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.
            :: Behebt das Umlautproblem (für ANSI/Windows-1252 codierte Skripte)
            chcp 1252 >nul
            
            if "%~1"=="" (
                echo Bitte sende einen Ordner an dieses Skript.
                echo.
                pause
                exit /b
            )
            
            if not exist "%~1\" (
                echo Der uebergebene Pfad ist kein Ordner:
                echo %~1
                echo.
                pause
                exit /b
            )
            
            set "ZIEL=%~1"
            set "AUSGABE=%ZIEL%\dateiliste_rekursiv.txt"
            
            echo Rekursive Dateiliste wird erstellt...
            echo Ordner:
            echo %ZIEL%
            echo.
            
            :: /a sorgt dafuer, dass Dateien UND Ordner rekursiv (/s) ausgegeben werden
            dir "%ZIEL%" /b /s /a > "%AUSGABE%"
            type "%AUSGABE%" | clip
            
            echo Fertig.
            echo Die Datei wurde erstellt:
            echo %AUSGABE%
            echo.
            echo Der Inhalt wurde zusaetzlich in die Zwischenablage kopiert.
            echo.
            pause

            Code der rekursiven Textdatei-Variante erklärt

            Prüfen, ob ein Ordner übergeben wurde

            if "%~1"=="" (
                echo Bitte sende einen Ordner an dieses Skript.
                echo.
                pause
                exit /b
            )

            Wenn kein Ordner übergeben wurde, zeigt das Skript eine Meldung an und beendet sich.

            Prüfen, ob der übergebene Pfad ein Ordner ist

            if not exist "%~1\" (
                echo Der uebergebene Pfad ist kein Ordner:
                echo %~1
                echo.
                pause
                exit /b
            )

            Der Backslash am Ende von %~1\ sorgt dafür, dass gezielt auf einen Ordner geprüft wird.

            Zielordner und Ausgabedatei festlegen

            set "ZIEL=%~1"
            set "AUSGABE=%ZIEL%\dateiliste_rekursiv.txt"

            Der übergebene Ordner wird in der Variable ZIEL gespeichert.

            Die Ausgabedatei wird direkt im übergebenen Ordner erstellt und heißt dateiliste_rekursiv.txt.

            Rekursive Liste erstellen

            dir "%ZIEL%" /b /s /a > "%AUSGABE%"

            Diese Zeile erstellt die eigentliche rekursive Liste.

            dir "%ZIEL%" listet den Inhalt des Zielordners auf.

            /b erzeugt eine einfache Ausgabe.

            /s durchsucht den Ordner inklusive Unterordnern.

            /a sorgt dafür, dass Dateien und Ordner ausgegeben werden.

            Die Ausgabe wird in die Datei dateiliste_rekursiv.txt geschrieben.

            Variante 6: Rekursive relative Pfade in die Zwischenablage kopieren

            Diese Variante erstellt keine Textdatei im übergebenen Ordner. Stattdessen wird eine rekursive Liste mit relativen Pfaden direkt in die Zwischenablage kopiert.

            Die Datei heißt:

            003_sendto_ordner_rekursiv_relative_pfade_in_clipboard.bat

            Diese Variante erwartet genau einen Ordner. Wenn kein Ordner oder mehrere Elemente übergeben werden, bricht das Skript mit einer Meldung ab.

            Relative Pfade sind besonders übersichtlich, weil der lange Anfangspfad weggelassen wird.

            Beispiel:

            01_Einfach
            02_Mit Zwischenablage
            01_Einfach\03_dateiliste_erstellen.bat

            Der komplette Code dieser Variante

            @echo off
            REM ============================================================
            REM TOPTORIALS OFFICE - Batch Grundkurs
            REM Script: 003_sendto_ordner_rekursiv_relative_pfade_in_clipboard.bat
            REM Beschreibung: Kopiert eine rekursive Dateiliste mit relativen Pfaden fuer einen uebergebenen Ordner 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 Dieses Script erstellt keine Textdatei im uebergebenen Ordner.
            REM Die Ausgabe wird nur in die Zwischenablage kopiert.
            REM ============================================================
            echo.
            
            :: Behebt das Umlautproblem fuer ANSI/Windows-1252 codierte Skripte
            chcp 1252 >nul
            
            setlocal enabledelayedexpansion
            
            if "%~1"=="" (
                echo Bitte sende genau einen Ordner an dieses Skript.
                echo.
                pause
                exit /b
            )
            
            if not "%~2"=="" (
                echo Bitte nur einen einzigen Ordner an dieses Skript senden.
                echo.
                echo Es wurden mehrere Elemente uebergeben.
                echo.
                pause
                exit /b
            )
            
            if not exist "%~1\" (
                echo Der uebergebene Pfad ist kein Ordner:
                echo %~1
                echo.
                pause
                exit /b
            )
            
            set "ZIEL=%~1"
            set "AUSGABE=%TEMP%\dateiliste_rekursiv_relative_pfade_%RANDOM%_%RANDOM%.txt"
            
            if exist "%AUSGABE%" del "%AUSGABE%"
            
            echo Rekursive Dateiliste mit relativen Pfaden wird erstellt...
            echo Ordner:
            echo %ZIEL%
            echo.
            
            (
                echo Rekursive Dateiliste mit relativen Pfaden
                echo.
                echo Durchsuchter Ordner:
                echo %ZIEL%
                echo.
                echo ============================================================
                echo.
            ) > "%AUSGABE%"
            
            for /f "delims=" %%A in ('dir "%ZIEL%" /b /s /a 2^>nul') do (
                set "VOLL=%%A"
                set "REL=!VOLL:%ZIEL%\=!"
                >>"%AUSGABE%" echo(!REL!
            )
            
            type "%AUSGABE%" | clip
            del "%AUSGABE%" >nul 2>nul
            
            echo Fertig.
            echo Die rekursive Dateiliste mit relativen Pfaden wurde in die Zwischenablage kopiert.
            echo.
            pause

            Code der relativen Pfad-Variante erklärt

            setlocal enabledelayedexpansion

            setlocal enabledelayedexpansion

            Diese Zeile aktiviert die verzögerte Variablenerweiterung.

            Das ist hier wichtig, weil Variablen innerhalb einer Schleife verändert und direkt wieder gelesen werden. Dafür wird später die Schreibweise mit Ausrufezeichen verwendet, zum Beispiel !REL!.

            Prüfen, ob genau ein Ordner übergeben wurde

            if "%~1"=="" (
                echo Bitte sende genau einen Ordner an dieses Skript.
                echo.
                pause
                exit /b
            )
            
            if not "%~2"=="" (
                echo Bitte nur einen einzigen Ordner an dieses Skript senden.
                echo.
                echo Es wurden mehrere Elemente uebergeben.
                echo.
                pause
                exit /b
            )

            Diese Variante soll bewusst nur mit einem einzigen Ordner arbeiten. Deshalb wird zuerst geprüft, ob überhaupt etwas übergeben wurde, und danach, ob vielleicht zu viele Elemente übergeben wurden.

            Temporäre Ausgabedatei mit Zufallsnamen

            set "AUSGABE=%TEMP%\dateiliste_rekursiv_relative_pfade_%RANDOM%_%RANDOM%.txt"

            Die Ausgabe wird nicht im Zielordner gespeichert, sondern nur vorübergehend im Temp-Ordner. Durch %RANDOM% bekommt die Datei einen zufälligen Namen. Dadurch sinkt das Risiko, dass eine vorhandene temporäre Datei überschrieben wird.

            Kopfbereich in die Ausgabe schreiben

            (
                echo Rekursive Dateiliste mit relativen Pfaden
                echo.
                echo Durchsuchter Ordner:
                echo %ZIEL%
                echo.
                echo ============================================================
                echo.
            ) > "%AUSGABE%"

            Dieser Block schreibt einen Kopfbereich in die Ausgabedatei. Dadurch ist später in der Zwischenablage sichtbar, welcher Ordner durchsucht wurde.

            Relative Pfade erzeugen

            for /f "delims=" %%A in ('dir "%ZIEL%" /b /s /a 2^>nul') do (
                set "VOLL=%%A"
                set "REL=!VOLL:%ZIEL%\=!"
                >>"%AUSGABE%" echo(!REL!
            )

            Dieser Block erstellt die rekursive Liste und wandelt die vollständigen Pfade in relative Pfade um.

            dir "%ZIEL%" /b /s /a liefert zunächst vollständige Pfade.

            Mit

            set "REL=!VOLL:%ZIEL%\=!"

            wird der Anfangspfad entfernt. Übrig bleibt nur der relative Teil bezogen auf den übergebenen Ordner.

            Variante 7: Rekursive absolute Pfade in die Zwischenablage kopieren

            Diese Variante erstellt ebenfalls keine Textdatei im übergebenen Ordner. Die Ausgabe wird nur in die Zwischenablage kopiert.

            Die Datei heißt:

            003_sendto_ordner_rekursiv_absolute_pfade_in_clipboard.bat

            Im Unterschied zur relativen Variante werden hier die vollständigen absoluten Pfade ausgegeben.

            Beispiel:

            C:\TOPTORIALS_CODE\1000_TESTBEREICH\TOPTORIALS_Testdaten_Windows_Automatisierung_Batch_V001\003_Dateiliste_erstellen\01_Einfach
            C:\TOPTORIALS_CODE\1000_TESTBEREICH\TOPTORIALS_Testdaten_Windows_Automatisierung_Batch_V001\003_Dateiliste_erstellen\01_Einfach\03_dateiliste_erstellen.bat

            Der komplette Code dieser Variante

            @echo off
            REM ============================================================
            REM TOPTORIALS OFFICE - Batch Grundkurs
            REM Script: 003_sendto_ordner_rekursiv_absolute_pfade_in_clipboard.bat
            REM Beschreibung: Kopiert eine rekursive Dateiliste mit absoluten Pfaden fuer einen uebergebenen Ordner 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 Dieses Script erstellt keine Textdatei im uebergebenen Ordner.
            REM Die Ausgabe wird nur in die Zwischenablage kopiert.
            REM ============================================================
            echo.
            
            :: Behebt das Umlautproblem fuer ANSI/Windows-1252 codierte Skripte
            chcp 1252 >nul
            
            if "%~1"=="" (
                echo Bitte sende genau einen Ordner an dieses Skript.
                echo.
                pause
                exit /b
            )
            
            if not "%~2"=="" (
                echo Bitte nur einen einzigen Ordner an dieses Skript senden.
                echo.
                echo Es wurden mehrere Elemente uebergeben.
                echo.
                pause
                exit /b
            )
            
            if not exist "%~1\" (
                echo Der uebergebene Pfad ist kein Ordner:
                echo %~1
                echo.
                pause
                exit /b
            )
            
            set "ZIEL=%~1"
            set "AUSGABE=%TEMP%\dateiliste_rekursiv_absolute_pfade_%RANDOM%_%RANDOM%.txt"
            
            if exist "%AUSGABE%" del "%AUSGABE%"
            
            echo Rekursive Dateiliste mit absoluten Pfaden wird erstellt...
            echo Ordner:
            echo %ZIEL%
            echo.
            
            (
                echo Rekursive Dateiliste mit absoluten Pfaden
                echo.
                echo Durchsuchter Ordner:
                echo %ZIEL%
                echo.
                echo ============================================================
                echo.
                dir "%ZIEL%" /b /s /a
            ) > "%AUSGABE%"
            
            type "%AUSGABE%" | clip
            del "%AUSGABE%" >nul 2>nul
            
            echo Fertig.
            echo Die rekursive Dateiliste mit absoluten Pfaden wurde in die Zwischenablage kopiert.
            echo.
            pause

            Code der absoluten Pfad-Variante erklärt

            Diese Variante ist einfacher als die relative Variante, weil keine Pfade gekürzt werden müssen.

            Der wichtigste Bereich ist:

            (
                echo Rekursive Dateiliste mit absoluten Pfaden
                echo.
                echo Durchsuchter Ordner:
                echo %ZIEL%
                echo.
                echo ============================================================
                echo.
                dir "%ZIEL%" /b /s /a
            ) > "%AUSGABE%"

            Hier wird zuerst ein Kopfbereich geschrieben und danach direkt die rekursive Dateiliste erzeugt.

            Mit

            dir "%ZIEL%" /b /s /a

            werden Dateien und Ordner inklusive Unterordnern ausgegeben. Da /s verwendet wird, enthält die Ausgabe vollständige Pfade.

            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.

            Welche Variante brauche ich?

            Die Varianten unterscheiden sich vor allem darin, welche Ausgabe erzeugt werden soll.

            • Einfache Dateiliste: Wenn du nur die Dateien im aktuellen Ordner als Textdatei speichern möchtest.
            • Dateiliste mit Zwischenablage: Wenn du die Dateiliste zusätzlich sofort einfügen möchtest.
            • Namen markierter Elemente: Wenn du nur die Namen ausgewählter Dateien oder Ordner brauchst.
            • Pfade markierter Elemente: Wenn du die vollständigen Pfade ausgewählter Dateien oder Ordner brauchst.
            • Rekursiv als Textdatei: Wenn du eine dauerhafte rekursive Liste im Ordner speichern möchtest.
            • Rekursiv relative Pfade: Wenn du eine übersichtliche Struktur ohne lange Anfangspfade kopieren möchtest.
            • Rekursiv absolute Pfade: Wenn du exakte vollständige Pfade dokumentieren oder weitergeben möchtest.

            Wichtige Hinweise

            • Die einfachen Varianten erstellen eine Datei namens dateiliste.txt.
            • Die rekursive Textdatei-Variante erstellt eine Datei namens dateiliste_rekursiv.txt.
            • Die Clipboard-Varianten erzeugen nur temporäre Dateien und kopieren die Ausgabe in die Zwischenablage.
            • Die rekursiven Clipboard-Varianten erwarten genau einen Ordner.
            • Bei sehr großen Ordnerstrukturen können sehr lange Listen entstehen.
            • Die Skripte löschen, verschieben oder benennen keine vorhandenen Dateien um.

            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:

            03_dateiliste_erstellen.bat

            und nicht:

            03_dateiliste_erstellen.bat.txt

            Die SendTo-Variante meldet, dass nichts übergeben wurde

            Dann wurde das Skript wahrscheinlich direkt per Doppelklick gestartet.

            SendTo-Varianten erwarten Dateien oder Ordner, die im Explorer markiert und über Senden an übergeben werden.

            Die rekursive Variante meldet, dass mehrere Elemente übergeben wurden

            Die rekursiven Clipboard-Varianten für relative und absolute Pfade erwarten genau einen Ordner. Wenn mehrere Elemente übergeben werden, bricht das Skript bewusst ab.

            Die Datei dateiliste.txt ist plötzlich in der Liste enthalten

            Wenn ein Skript eine Dateiliste im gleichen Ordner erstellt, kann diese Ausgabedatei später ebenfalls im Ordner liegen. Bei einem erneuten Durchlauf kann sie deshalb mit aufgelistet werden.

            Wenn eine absolut saubere Liste benötigt wird, kann man die alte dateiliste.txt vorher löschen oder die Ausgabe in einen anderen Ordner schreiben.

            Was haben wir gelernt?

            In diesem Teil wurden mehrere wichtige Batch-Grundlagen gezeigt:

            dir listet Dateien und Ordner auf.
            /b erzeugt eine einfache Ausgabe.
            /a-d listet nur Dateien auf.
            /s durchsucht Unterordner rekursiv.
            /a gibt Dateien und Ordner aus.
            > schreibt eine Ausgabe in eine Datei.
            >> hängt eine Ausgabe an eine Datei an.
            type liest den Inhalt einer Textdatei.
            clip kopiert Text in die Windows-Zwischenablage.
            %~1 steht für den ersten übergebenen Parameter.
            %~nx1 gibt Name und Erweiterung eines Parameters aus.
            shift verarbeitet mehrere übergebene Elemente nacheinander.
            setlocal enabledelayedexpansion hilft bei Variablen in Schleifen.

            Damit ist dieses Skript-Paket ein sehr nützliches Werkzeug, um Dateien, Pfade und Ordnerstrukturen schnell zu dokumentieren oder weiterzuverarbeiten.

             

            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 003: Dateiliste erstellen
            • Batch Grundkurs 003: Dateiliste erstellen und in Zwischenablage kopieren
            • Python Grundkurs 002: Ordner automatisch erstellen
            • PowerShell 7 Grundkurs 002: Ordner automatisch erstellen
            • Batch Grundkurs 002: Ordner automatisch erstellen

            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