Textdateien automatisch erstellen und nach Ordner benennen
Hallo Administrator-Community!
Ich stelle hier meine Frage, weil ich von Batch-Dateien leider keine Ahnung habe, sie aber warscheinlich mein "Problem" lösen.
Ich habe eine externe Festplatte mit einem Haufen Unterordner. Da ich sie nicht immer an- und abstöpseln möchte, würde ich mir gerne für jeden Ordner eine Text-Datei mit dem gleichen Namen erstellen.
Ein Beispiel:
Ordnername: Winterurlaub (2012)
Daraus möchte ich ein Textdokument mit dem gleichen Name (Winterurlaub (2012).txt) machen. Also einfach nur ein leeres Textdokument, mit einem Namen.
Am besten eine Batchdatei, die aus allen Unterordnern jeweils eine Testdatei erstellt.
Ist soetwas überhaupt möglich?
Wann ja, könnte mir jemand weiterhelfen?
Freundliche Grüße
Striding
Ich stelle hier meine Frage, weil ich von Batch-Dateien leider keine Ahnung habe, sie aber warscheinlich mein "Problem" lösen.
Ich habe eine externe Festplatte mit einem Haufen Unterordner. Da ich sie nicht immer an- und abstöpseln möchte, würde ich mir gerne für jeden Ordner eine Text-Datei mit dem gleichen Namen erstellen.
Ein Beispiel:
Ordnername: Winterurlaub (2012)
Daraus möchte ich ein Textdokument mit dem gleichen Name (Winterurlaub (2012).txt) machen. Also einfach nur ein leeres Textdokument, mit einem Namen.
Am besten eine Batchdatei, die aus allen Unterordnern jeweils eine Testdatei erstellt.
Ist soetwas überhaupt möglich?
Wann ja, könnte mir jemand weiterhelfen?
Freundliche Grüße
Striding
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 222930
Url: https://administrator.de/forum/textdateien-automatisch-erstellen-und-nach-ordner-benennen-222930.html
Ausgedruckt am: 20.04.2025 um 05:04 Uhr
10 Kommentare
Neuester Kommentar
na klar. Sollte gehen.
Wo sollen die TXTs denn landen ?
(Denke, auf der lokalen Platte, und nicht auf der USB (nennen wir es U
wegen abklemmen)
OK. Sollen die TXTs (sagen wir mal auf C
"flach" in EINEM Ordner landen ?
(was ein Problem bei gleichen Ordnernamen in unterschiedlichen Ordnern ergeben würde)
Oder soll die Ordnerstruktur der USB-HDD quasi LEER abgebildet und in jedem
Zielordner halt nicht die Dateien, sondern nur die eine, jeweilige TXT stehen ?
Wo sollen die TXTs denn landen ?
(Denke, auf der lokalen Platte, und nicht auf der USB (nennen wir es U
OK. Sollen die TXTs (sagen wir mal auf C
(was ein Problem bei gleichen Ordnernamen in unterschiedlichen Ordnern ergeben würde)
Oder soll die Ordnerstruktur der USB-HDD quasi LEER abgebildet und in jedem
Zielordner halt nicht die Dateien, sondern nur die eine, jeweilige TXT stehen ?
Hallo striding und willkommen im Forum!
An sich durchaus machbar - offen ist aber jedenfalls die Frage, ob diese Dateien alle in einem einzigen Ordner erstellt werden sollen, und wenn ja, was bei Namensgleichheit geschehen sollte ...
... und außerdem: Sollen diese Dateien auch einen Inhalt haben?
Grüße
bastla
An sich durchaus machbar - offen ist aber jedenfalls die Frage, ob diese Dateien alle in einem einzigen Ordner erstellt werden sollen, und wenn ja, was bei Namensgleichheit geschehen sollte ...
... und außerdem: Sollen diese Dateien auch einen Inhalt haben?
Grüße
bastla
Hallo striding!
Wenn demnach die Ordnerstruktur übernommen werden soll (dann kann es auch keine Kollisionen mit gleichen Namen geben), (ungetestet) etwa so:
Grüße
bastla
Wenn demnach die Ordnerstruktur übernommen werden soll (dann kann es auch keine Kollisionen mit gleichen Namen geben), (ungetestet) etwa so:
@echo off & setlocal
set "Quelle=F:\"
set "Ziel=%userprofile%\Desktop\ExterneFestplatte_F"
for /d /r "%Quelle%" %%i in (*) do set "Pfad=%%~fi" & call :ProcessDir "%%i"
goto :eof
:ProcessDir
call set "PfadRel=%%Pfad:%Quelle%=%%"
md "%Ziel%\%PfadRel%\" 2>nul && copy nul "%Ziel%\%PfadRel%\%~nx1">nul
goto :eof
bastla
Hi, nur falls das interessant ist, hiermit kannst Du Dir ein Textfile mit der Ordnerstruktur erstellen:
(bei englischen Windows muss Du "Verzeichnis von" noch übersetzen)
REM VIEL SPASS >>:O)
(bei englischen Windows muss Du "Verzeichnis von" noch übersetzen)
@ECHO OFF
SETLOCAL EnableDelayedExpansion
MD C:\BATCHES
SET SOURCEFOLDER=U:\
SET TARGETFILE=C:\Batches\verzeichnisliste.txt
SET KOMMANDO=dir %SOURCEFOLDER% /s
REM DELETE AND GENERATE TARGETFILE
ECHO LIST OF MY DIRECTORIES ON %SOURCEFOLDER% - %DATE% - %TIME:~0,-3% >%TARGETFILE%
ECHO =============================================================================== >>%TARGETFILE%
REM LOOP-DI-LOOP
FOR /f "tokens=* delims=" %%a IN ('%KOMMANDO% ^|find "Verzeichnis von"') DO (
CALL :SPLITSTRING "%%a"
)
GOTO ENDE
REM EXTRACT FOLDERNAME FROM STRING
:SPLITSTRING
SET TMPSTRING=%1
SET RESULTSTR=%TMPSTRING:~18,-1%
ECHO %RESULTSTR% >>%TARGETFILE%
goto :EOF
:ENDE
pause
@ECHO.
type %TARGETFILE%
@ECHO.
pause
REM VIEL SPASS >>:O)
Hallo striding!
Dann also eher:
Grüße
bastla
Dann also eher:
@echo off & setlocal
set "Quelle=F:\"
set "Ziel=%userprofile%\Desktop\ExterneFestplatte_F"
md "%Ziel%" 2>nul
for /d /r "%Quelle%" %%i in (*) do call :ProcessDir "%%i"
goto :eof
:ProcessDir
set "Suffix="
set /a Nr=1000
:Test
if not exist "%Ziel%\%~nx1%Suffix%.txt" goto :Schreiben
set /a Nr+=1
set "Suffix=_%Nr:~-2%"
goto :Test
:Schreiben
copy nul "%Ziel%\%~nx1%Suffix%.txt">nul
goto :eof
bastla
Hi Bastla,
ach, deshalb sind meine Batches immer gleich 5 Kilometer lang :O))
Aber warum einfach wenn es auch komplizert geht
Danke für den Hinweis, wer /? eingeben kann ist klar im Vorteil :O)
Gruss
RS
</flachs>
PS: oder man gibt format u /s ein, dann kann man die Liste auch schnell von Hand schreiben.
</flachs>
ach, deshalb sind meine Batches immer gleich 5 Kilometer lang :O))
Aber warum einfach wenn es auch komplizert geht
Danke für den Hinweis, wer /? eingeben kann ist klar im Vorteil :O)
Gruss
RS
</flachs>
PS: oder man gibt format u /s ein, dann kann man die Liste auch schnell von Hand schreiben.
</flachs>