pittrich67

Videodatei aus Unterordner in Hauptordner verschieben und nach Hauptordner-Namen umbenennen

Hallo Experten,

ich habe mich hier schon ein wenig eingelesen, aber es scheint keine passende Batch dabei zu sein.
Mein Ausgangspunkt ist folgender:

- variabler Laufwerk als rootverzeichnis
- Zielordner "ich bin der hauptordner"
- Unterordner "ich.bin.der.unterordner"
- im "ich.bin.der.unterordner" liegen die Dateien "ich.will.in.den.hauptordner.mp4" und
"ich.will.nicht.in.den.hauptordner.txt" und "ich.will.nicht.in.den.hauptordner.jpg"

Mein Wunsch ist, dass die
- Videodatei "ich.will.in.den.hauptordner.mp4" unter Beibehaltung der Dateiendung
- nach "ich bin der hauptordner" verschoben und in "ich bin der hauptordner.mp4" umbenannt wird
- und der Unterordner "ich.bin.der.unterordner" mit den verbliebenen Dateien "ich.will.nicht.in.den.hauptordner.txt"
und "ich.will.nicht.in.den.hauptordner.jpg" gelöscht wird.

Das sind natürlich nur stellvertretende Ordner- und Dateinamen. Es gibt im root der variablen Laufwerke ähnliche Ordner nur mit anderen Namen.
Es wäre super, wenn mir jemand ein funktionierendes Script zur Verfügung stellen könnte.
Share on Facebook
Share on X (Twitter)
Share on Reddit
Share on Linkedin

Content-ID: 6416669312

Url: https://administrator.de/forum/videodatei-aus-unterordner-in-hauptordner-verschieben-und-nach-hauptordner-namen-umbenennen-6416669312.html

Printed on: July 18, 2025 at 09:07 o'clock

micneu
micneu Mar 19, 2023 updated at 00:13:13 (UTC)
zeig doch mal deinen code, BATCH bin ich nicht mehr so fit, warum nutzt du nicht Powershell, das ist schon sehr mächtig

hier habe ich mal kurz gebaut, es fehlt noch einiges aber so kann man starten

$QUELLE = "ich.bin.der.unterordner"  
$INHALT = Get-ChildItem $QUELLE\*.mp4 -Name
$NAME = $INHALT.Replace('.', ' ').Replace(' mp4', '.mp4 ')  
$INHALT
$NAME
pittrich67
pittrich67 Mar 19, 2023 at 09:32:16 (UTC)
Erst einmal danke für deine schnelle Antwort.
Den Code, die Batch kann ich nicht zeigen, da ich ihn hier aus dem Forum habe und wegen nicht funktionieren wieder gelöscht habe.
Was deine Lösung angeht, ist sie für mich eher unpraktikabel. Ich hätte gern eine *.bat, die ich im root des Laufwerks ablege, um jeden Ordner - oder eben auch alle auf einmal - auf die Batch zu ziehen, um das Verschieben, umbenennen und löschen auszulösen.
6247018886
Solution 6247018886 Mar 19, 2023 updated at 10:20:24 (UTC)
Moin.
Batch zum mehrere Ordner drauf ziehen ...
@echo off
:start
if "%~1" == "" goto :eof  
set "foldername=%~n1"  
for /f "delims=" %%a in ('dir /b /s /a-d "%~1\*.mp4"') do (move "%%a" "%~1\%foldername%%%~xa" && rd /s /q "%%~dpa")  
shift
goto start
Oder gleich die Powershell
param([string[]]$folder)
Get-ChildItem $folder -File -Filter *.mp4 -Recurse | %{
    move-item $_.Fullname -Destination "$($_.Directory.Parent.Fullname)\$($_.Directory.Parent.Name)$($_.Extension)" -verbose  
    remove-item $_.DirectoryName -Recurse -Force
}
Ausführung
.\script.sp1 "D:\Ordner1","D:\Ordner2","D:\Ordner3"
Ich hätte gern eine *.bat, die ich im root des Laufwerks ablege
Und ich hät jetzt gern nen zweiten Kaffee ...

Cheers briggs
pittrich67
pittrich67 Mar 19, 2023 at 11:14:29 (UTC)
Vielen Dank 🙏
Das ging ja wirklich mega schnell und die *.bat läuft reibungslos 👍