Datei eine Hierarchieebene nach oben verschieben per Batch
Hallo liebe Admins,
ich habe da ein lästiges Problem, was sich hoffentlich mit eurer Hilfe beseitigen lässt.
Es existiert folgende Ordnerstruktur:
Videos
-Video 1
--Film
->Film.mov
und zwar in mehrfacher Ausführung (so viele, dass es zu lange dauern würde um es per Hand zu machen).
Wie der Titel sagt, soll (bzw sollen) alle Dateien im Unterordner "Film" in den Ordner "Video 1" (etc.) verschoben werden, und der Ordner "Film" bei Erfolg gelöscht werden.
Wie sähe das Script aus?
Unterordner aus Ordner eine Ebene nach oben verschieben?
Das Beispiel klappt bei mir nicht, bekomme nicht mal ne Fehlermeldung...
Schönes Wochenende noch!
ich habe da ein lästiges Problem, was sich hoffentlich mit eurer Hilfe beseitigen lässt.
Es existiert folgende Ordnerstruktur:
Videos
-Video 1
--Film
->Film.mov
und zwar in mehrfacher Ausführung (so viele, dass es zu lange dauern würde um es per Hand zu machen).
Wie der Titel sagt, soll (bzw sollen) alle Dateien im Unterordner "Film" in den Ordner "Video 1" (etc.) verschoben werden, und der Ordner "Film" bei Erfolg gelöscht werden.
Wie sähe das Script aus?
Unterordner aus Ordner eine Ebene nach oben verschieben?
Das Beispiel klappt bei mir nicht, bekomme nicht mal ne Fehlermeldung...
Schönes Wochenende noch!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 134778
Url: https://administrator.de/forum/datei-eine-hierarchieebene-nach-oben-verschieben-per-batch-134778.html
Ausgedruckt am: 22.12.2024 um 22:12 Uhr
17 Kommentare
Neuester Kommentar
Dim fs, fld
Set fs = CreateObject ("scripting.FileSystemObject")
For Each fld in In fs.Getfolder("Videos") .SubFolders 'da sollte der komplette Pfad übergeben werden
fs.MoveFile fld.Path &"\Film.mov", "videos\Film.mov" 'siehe oben ;-)
fs.DeleteFolder fld.Path
Next fld
und das end tag vergessen - morgens um 7 halt
Durch das @echo sollte auch erstmal nicht wirklich etwas verschoben werden sondern nur eine Anzeige.
Versuchs mal damit:
Auch hier kommt erstmal nur eine Anzeige was passieren wird.
Wenn diese ausgabe passt kdan kannst du das echo entfernen
Versuchs mal damit:
@for /d %i in ("e:\todo\_ok\*.*") do @for /d %j in ("%i") do @echo move "%~j\%~nxj.*" %j
Wenn diese ausgabe passt kdan kannst du das echo entfernen
Ok. Ich ging davon aus das der Film in dm Ordner immer so geist wie der Ordner selbst.
Das löschen fehlte noch. Aber sonsnt scheint e doch zu passen?
Wenn es alle Dateien sein sollen dann so:
Auch hier wird nur angezeigt was passieren wird. Wenn das gut aussieht dann das echo entfernen.
Oder ist der name FILM immer fest?
Dann könnte es (ungetestet) so funktionieren:
Das löschen fehlte noch. Aber sonsnt scheint e doch zu passen?
Wenn es alle Dateien sein sollen dann so:
@for /d %i in ("e:\todo\_ok\*.*") do @for /d %j in ("%i") do (@echo move "%~j\*.*" %j && @echo rd /Q %j)
Oder ist der name FILM immer fest?
Dann könnte es (ungetestet) so funktionieren:
@for /d %i in ("e:\todo\_ok\*.*") do (@echo move "%~i\FILM\*.*" %i && @echo rd /Q "%~i"%~i\FILM")