abuelito
Goto Top

Eine Datei die sich in mehreren Unterordnern befindet mit einer Batch-Datei umbenennen

Hallo an Alle,

ich habe einen Ordner mit mehreren Unterordnern. Alle Unterordner haben als Ordnernamen folgenden Aufbau:

JJMMTTJJMMTT

In allen Unterordnern befindet sich eine TXT-Datei, die immer den gleichen Dateinamen, aber andere Inhalte hat.

Nun möchte ich gerne diese TXT-Datei aus allen Unterordnern in einen Temp Ordner kopieren und gleichzeitig umbenennen.

Beispiel:

Ordner "TEST" hat folgende Unterordner:

110701110701
110702110702
110703110703
110704110704
usw.

In jedem Unterordner befindet sich folgende Datei:

TEST123.txt

Diese Datei will ich nun von jedem Unterordner in den Temp Ordner kopieren und mit einem Teil des Ordnernamens umbenennen:

Beispiel:

Von Unterordner "110701110701" die Datei TEST123.txt in Ordner C:\Temp kopieren und in TEST123_110701 umbenennen.
Von Unterordner "110702110702" die Datei TEST123.txt in Ordner C:\Temp kopieren und in TEST123_110702 umbenennen.
Von Unterordner "110703110703" die Datei TEST123.txt in Ordner C:\Temp kopieren und in TEST123_110703 umbenennen.
usw.

Wie kann ich das per Batch-Datei lösen?

Für eure Hilfe schon mal vielen Dank.

Viele Grüße
abuelito

Content-Key: 170354

Url: https://administrator.de/contentid/170354

Ausgedruckt am: 29.03.2024 um 08:03 Uhr

Mitglied: 60730
60730 25.07.2011 um 12:04:55 Uhr
Goto Top
Moin, edit und willkommen /edit

  • mach mal eine Dosbos auf
  • trage da "for /?" gefolgt von einem Return ein
  • Wenn du überhaupt keine Idee hast, schau hier nach der "Anleitung für For"
  • Und wenn das, was du dann gezimmert hast immer noch nicht richtig läuft, gerne helfen wir die weiter, deinen Ansatz zu verbessern.

Gruß
Mitglied: Friemler
Friemler 25.07.2011 um 12:17:02 Uhr
Goto Top
Hallo abuelito,

teste mal das hier:
@echo off & setlocal


set "SrcDir=E:\Test"  
set "DestDir=C:\Temp"  
set "TextFile=test123.txt"  


for /f "delims=" %%f in ('dir /s /b /a:-d "%SrcDir%\%TextFile%"') do (  
  set "File=%%f"  
  call :ProcessFile
)

exit /b



:ProcessFile
  for %%i in ("%File%") do set "FilePath=%%~dpi"  
  for %%i in ("%File%") do set "FileName=%%~ni"  
  for %%i in ("%File%") do set "FileExt=%%~xi"  

  set "FilePath=%FilePath:~0,-1%"  
  for %%i in ("%FilePath%") do set "ParentFolder=%%~nxi"  
  set "Addendum=%ParentFolder:~0,6%"  

  copy "%File%" "%DestDir%\%FileName%_%Addendum%%FileExt%"  
exit /b

Gruß
Friemler
Mitglied: abuelito
abuelito 25.07.2011 um 14:45:34 Uhr
Goto Top
Hallo Friemler,

super, vielen Dank.

Hat bestens geklappt.

@Timo Beil ... Dir auch nochmal Danke, hab es ausprobiert. Steht einiges dabei.

Grüße
abuelito