Per batch oder script dateien über mehrere ordner zusammenführen.
PVR hat ca. 5TB an videomaterial gespeichert.
.tpr und .001 .002 usw zusammenführen?
Hi zusammen,
folgendes Szenario
mein Festplattenrekorder hat ca. 5TB an Videomaterial gespeichert.
Die meisten Videos liegen gesplittet in Unterordnern.
Ich möchte die Files nun gejoint auf meinen PC kopieren.
Manuell würde ich nun so vorgehen:
console öffnen.
e:
cd ordner1
copy /b video1.tpr+video1.001+video1.002+video1.003 d:\videos\video_1.tpr
cd ..
cd ordner2
copy /b video2.tpr+video2.001+video2.002+video2.003+video2.004 d:\videos\video_2.tpr
usw....
lässt sich das ganze per batch realisieren, sodass ich das einfach über nacht laufen lassen kann?
bei über 200 videos tipp ich mir n wolf...
am liebsten hätte ich ein script, das mir alle verzeichnisse auf der platte durchsucht, und alle .tpr mit den dazugehörigen .001 - .00n zusammenkopiert.
kann mir evtl. jemand so ein skript aus dem ärmel schütteln`?
os ist windows 7.
danke und gruß
.tpr und .001 .002 usw zusammenführen?
Hi zusammen,
folgendes Szenario
mein Festplattenrekorder hat ca. 5TB an Videomaterial gespeichert.
Die meisten Videos liegen gesplittet in Unterordnern.
Ich möchte die Files nun gejoint auf meinen PC kopieren.
Manuell würde ich nun so vorgehen:
console öffnen.
e:
cd ordner1
copy /b video1.tpr+video1.001+video1.002+video1.003 d:\videos\video_1.tpr
cd ..
cd ordner2
copy /b video2.tpr+video2.001+video2.002+video2.003+video2.004 d:\videos\video_2.tpr
usw....
lässt sich das ganze per batch realisieren, sodass ich das einfach über nacht laufen lassen kann?
bei über 200 videos tipp ich mir n wolf...
am liebsten hätte ich ein script, das mir alle verzeichnisse auf der platte durchsucht, und alle .tpr mit den dazugehörigen .001 - .00n zusammenkopiert.
kann mir evtl. jemand so ein skript aus dem ärmel schütteln`?
os ist windows 7.
danke und gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 26.11.2011 um 21:43:49 Uhr
Es wäre nun speziell in der Adventszeit pietätlos, Wetten abzuschliessen.
Andernfalls würde ich drei Becher Glühwein darauf setzen, dass dieser Beitrag im Bereich "Batch & Shell" gelöst wird und nicht in "Wunderwelt Windows".
Ich verschiebe diese 5 TByte Vivavideos mal.
Andernfalls würde ich drei Becher Glühwein darauf setzen, dass dieser Beitrag im Bereich "Batch & Shell" gelöst wird und nicht in "Wunderwelt Windows".
Ich verschiebe diese 5 TByte Vivavideos mal.
Content-ID: 176875
Url: https://administrator.de/forum/per-batch-oder-script-dateien-ueber-mehrere-ordner-zusammenfuehren-176875.html
Ausgedruckt am: 09.04.2025 um 17:04 Uhr
7 Kommentare
Neuester Kommentar
Hallo espresso!
Ist mit der Zielangabe "d:\videos\video_1.tpr", "d:\videos\video_2.tpr", ... eine laufende Nummerierung gemeint? Sinnvoller erschiene mir, zB nach "d:\videos\ordner1.tpr" zu kopieren ...
So oder so wäre ein etwas konkreteres Beispiel (auch für die tatsächlichen Dateinamen - Stichwort Leer- und Sonderzeichen) sinnvoll ...
Grüße
bastla
Ist mit der Zielangabe "d:\videos\video_1.tpr", "d:\videos\video_2.tpr", ... eine laufende Nummerierung gemeint? Sinnvoller erschiene mir, zB nach "d:\videos\ordner1.tpr" zu kopieren ...
So oder so wäre ein etwas konkreteres Beispiel (auch für die tatsächlichen Dateinamen - Stichwort Leer- und Sonderzeichen) sinnvoll ...
Grüße
bastla
Hallo espresso!
Etwas zum Testen:
Knifflig dabei sind die Sonderzeichen "!" und "&", welche beide in den Ordner-/Dateinamen vorkommen können (und vermutlich werden) - es wird daher temporär ein "&" durch "{" ersetzt - falls auch dieses Zeichen in den Namen enthalten sein sollte, müsstest Du nach einer Alternative suchen und in den Zeilen 13 und 19 die "{" dadurch ersetzen ...
Noch ein Hinweis: Die Pfade in den Zeilen 2 und 3 müssen jeweils mit "\" enden!
Solange übrigens in Zeile 19 "
Ich habe übrigens vorausgesetzt, dass es keine Videos mit einer höheren Laufnummer als ".099" gibt ...
Grüße
bastla
Etwas zum Testen:
@echo off & setlocal
set "Quelle=E:\"
set "Ziel=D:\Videos\"
for /f "delims=" %%i in ('dir /s /b /a-d "%Quelle%*.tpr" 2^>nul') do call :ProcessFile "%%i"
pause
goto :eof
:ProcessFile
pushd "%~dp1"
set "Name=%~n1"
set "Name=%Name:&={%"
for /f "delims=" %%d in ("%cd%") do set "Zielname=%Ziel%%%~nxd_%~nx1"
set "Befehl=copy /b "%Name%%~x1%""
for /f "delims=" %%d in ('dir /b /on "%~n1.0*"') do call :ProcessName "%%d"
echo %Befehl:{=&% "%Zielname%"
popd
goto :eof
:ProcessName
set "Befehl=%Befehl%+"%Name%%~x1""
goto :eof
Noch ein Hinweis: Die Pfade in den Zeilen 2 und 3 müssen jeweils mit "\" enden!
Solange übrigens in Zeile 19 "
echo
" steht, werden die Befehle nur angezeigt ...Ich habe übrigens vorausgesetzt, dass es keine Videos mit einer höheren Laufnummer als ".099" gibt ...
Grüße
bastla
Hallo espresso,
ich hätte da noch eine Version, die ohne die Maskierung von Sonderzeichen auskommt:
Die Variablen in den Zeilen 3 u. 4 müssen angepasst werden. Die Pfade dürfen NIE mit einem Bachslash enden, auch nicht bei der Angabe eines Wurzelverzeichnisses.
Das ganze sollte funktionieren, solange Verzeichnisnamen und Dateinamen kein
Auch in meinem Script gilt: Die Ausführung wird nur simuliert. Um den Code "scharf" zu schalten, bitte die
N8 (Gähn)
Friemler
ich hätte da noch eine Version, die ohne die Maskierung von Sonderzeichen auskommt:
@echo off & setlocal
set "SrcDir=E:\Test"
set "DestDir=E:\Ziel"
set "FileExt=tpr"
for /f "delims=" %%f in ('dir /s /b /a:-d "%SrcDir%\*.%FileExt%" 2^>NUL') do (
call :GetParentFolder "%%~dpf"
call :CopyMainPart "%%f"
call :AppendSubParts "%%f"
)
exit /b
:GetParentFolder
pushd "%~1"
for %%p in ("%CD%") do set "ParentFolder=%%~nxp"
popd
exit /b
:CopyMainPart
echo copy "%~1" "%DestDir%\%ParentFolder% - %~nx1"
exit /b
:AppendSubParts
for /f "delims=" %%p in ('dir /b /a:-d /o:e "%~dpn1.*" 2^>NUL ^| findstr /v /e /c:"%~nx1"') do (
echo copy /b "%DestDir%\%ParentFolder% - %~nx1"+"%~dp1%%p" "%DestDir%\%ParentFolder% - %~nx1"
)
exit /b
Die Variablen in den Zeilen 3 u. 4 müssen angepasst werden. Die Pfade dürfen NIE mit einem Bachslash enden, auch nicht bei der Angabe eines Wurzelverzeichnisses.
Das ganze sollte funktionieren, solange Verzeichnisnamen und Dateinamen kein
^
-Zeichen (Zirkumflex) enthalten.Auch in meinem Script gilt: Die Ausführung wird nur simuliert. Um den Code "scharf" zu schalten, bitte die
ECHO
-Befehle in den Zeilen 25 u. 31 entfernen.N8 (Gähn)
Friemler
Hallo zusammen,
ich wollte keinen neuen Thread aufmachen da es sich bei meinem Problem um ein ähnliches handelt.
Auch bei mir möchte ich via Script mehrere Dateien in einem Ordner (maximal 3 Dateien) zusammenfügen.
Es handelt sich hierbei um .m2ts Dateien. Manuel per CMD funktioniert es einwandfrei jedoch sehr mühsam.
Bis jetzt bin ich wie folgt vorgegangen:
cd C:\(Ordnername)
copy /b dateiname01.m2ts + dateiname02.m2ts + dateiname03.m2ts zieldatei.m2ts
Nun wäre ein Script perfekt das die 3 Dateien im Ordner automatisch zusammenfügt und der zusammengefügten Datei den Namen des Ordners geben würde in dem sie aktuell liegen.
Meine Ordnerstruktur sieht wie folgt aus:
FESTPLATTE D:/
FILME (Hauptordner)
Urlaub1 (Ordner) - CD1.m2ts+CD2.m2ts
Urlaub2 (Ordner) -CD1.m2ts+CD2.m2ts+CD3.m2ts
Ausflug (Ordner) -CD1.m2ts+CD2.m2ts
Rudertour (Ordner) - CD1.m2ts+CD2.m2ts+CD3.m2ts
Ich hoffe ich hab es verständlich genug erklärt. Leider bin ich was Skripte betrifft ne absolute Nullnummer
Hab schon versucht das obere Skript abzuändern aber es kommen nur Fehlermeldungen.
Vielen Dank für eure Antworten.
ich wollte keinen neuen Thread aufmachen da es sich bei meinem Problem um ein ähnliches handelt.
Auch bei mir möchte ich via Script mehrere Dateien in einem Ordner (maximal 3 Dateien) zusammenfügen.
Es handelt sich hierbei um .m2ts Dateien. Manuel per CMD funktioniert es einwandfrei jedoch sehr mühsam.
Bis jetzt bin ich wie folgt vorgegangen:
cd C:\(Ordnername)
copy /b dateiname01.m2ts + dateiname02.m2ts + dateiname03.m2ts zieldatei.m2ts
Nun wäre ein Script perfekt das die 3 Dateien im Ordner automatisch zusammenfügt und der zusammengefügten Datei den Namen des Ordners geben würde in dem sie aktuell liegen.
Meine Ordnerstruktur sieht wie folgt aus:
FESTPLATTE D:/
FILME (Hauptordner)
Urlaub1 (Ordner) - CD1.m2ts+CD2.m2ts
Urlaub2 (Ordner) -CD1.m2ts+CD2.m2ts+CD3.m2ts
Ausflug (Ordner) -CD1.m2ts+CD2.m2ts
Rudertour (Ordner) - CD1.m2ts+CD2.m2ts+CD3.m2ts
Ich hoffe ich hab es verständlich genug erklärt. Leider bin ich was Skripte betrifft ne absolute Nullnummer
Hab schon versucht das obere Skript abzuändern aber es kommen nur Fehlermeldungen.
Vielen Dank für eure Antworten.