Files aus Unterordner in drüberliegenden Orner verschieben
Hallo zusammen,
Meine Ordnerstruktur sieht folgendermaßen aus :
Ordner1\frame1\file1.xxx
file2.xxx
file3.xxx
Ordner2\frame1\file1.xxx
file2.xxx
file3.xxx
Ordner3\frame1\file1.xxx
file2.xxx
file3.xxx
Diese Files sollen möglichst per Batch einfach in den jeweils darüberliegenden Ordner verschoben werden.
Hab leider keinen Plan, wäre für jede Hilfe dankbar.
Im Voraus besten Dank.
Grüsse - Armin
Meine Ordnerstruktur sieht folgendermaßen aus :
Ordner1\frame1\file1.xxx
file2.xxx
file3.xxx
Ordner2\frame1\file1.xxx
file2.xxx
file3.xxx
Ordner3\frame1\file1.xxx
file2.xxx
file3.xxx
Diese Files sollen möglichst per Batch einfach in den jeweils darüberliegenden Ordner verschoben werden.
Hab leider keinen Plan, wäre für jede Hilfe dankbar.
Im Voraus besten Dank.
Grüsse - Armin
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 189564
Url: https://administrator.de/contentid/189564
Ausgedruckt am: 23.11.2024 um 00:11 Uhr
7 Kommentare
Neuester Kommentar
Hallo Armin1893!
Nur zur Sicherheit: Die "file1.xxx" sollen in die "frame1"-Ordner und auch die "file2.xxx" und "file3.xxx" sollen eine Ordnerebene höher [Edit2] (oder liegen die ohnehin auch in "frame1" - dann würde sich die Problemstellung ja auf "verschiebe alle Dateien aus dem jeweiligen Unterordner "frame1" eine Ordnerebene nach oben" reduzieren) [/Edit2]?
[Edit] Hinsichtlich "file2.xxx" und "file3.xxx" würde es zB beim Verschieben aus "Ordner2" zu einer Namenskollisionen kommen, da ja schon die gleichnamigen Dateien aus "Ordner1" vorhanden wären - was sollte dann passieren?
Und: Gibt es nur die genannten Dateien, bzw sollen alle gefundenen Dateien verschoben werden? [/Edit]
Grüße
bastla
Nur zur Sicherheit: Die "file1.xxx" sollen in die "frame1"-Ordner und auch die "file2.xxx" und "file3.xxx" sollen eine Ordnerebene höher [Edit2] (oder liegen die ohnehin auch in "frame1" - dann würde sich die Problemstellung ja auf "verschiebe alle Dateien aus dem jeweiligen Unterordner "frame1" eine Ordnerebene nach oben" reduzieren) [/Edit2]?
[Edit] Hinsichtlich "file2.xxx" und "file3.xxx" würde es zB beim Verschieben aus "Ordner2" zu einer Namenskollisionen kommen, da ja schon die gleichnamigen Dateien aus "Ordner1" vorhanden wären - was sollte dann passieren?
Und: Gibt es nur die genannten Dateien, bzw sollen alle gefundenen Dateien verschoben werden? [/Edit]
Grüße
bastla
Hallöchen, also ich habe ihn so verstanden das aus:
Ordner1\frame1\*.* --> Ordner1\*.* werden sollen.
Deshalb würde es (soweit ich es sehen kann) zu keiner kollision kommen, nur wenn noch ein weiter Ordner Ordner1\frame2\ wär, und in diesem die selbe benamung wie frame1 wär.
also ich hätte dies im Angebot.. Es werden ALLE dateien welche in Frame1 liegen nach Ordner1/2/3.... verschoben.
(das Script liegt dort wo Ordner1 Ordner2... liegen.)
Ordner1\frame1\*.* --> Ordner1\*.* werden sollen.
Deshalb würde es (soweit ich es sehen kann) zu keiner kollision kommen, nur wenn noch ein weiter Ordner Ordner1\frame2\ wär, und in diesem die selbe benamung wie frame1 wär.
also ich hätte dies im Angebot.. Es werden ALLE dateien welche in Frame1 liegen nach Ordner1/2/3.... verschoben.
@echo off
setlocal enabledelayedexpansion
cd /d %~dp0
set ausgang=%cd%
for /f %%a in ('dir /b /a:d') do (
set NachOrdner=%ausgang%\%%a
for /f %%i in ('dir !NachOrdner! /b /a:d') do (
set VonOrdner=!NachOrdner!\%%i
echo move !VonOrdner!\*.* !NachOrdner!
echo rd !VonOrdner!
)
)
@der-blob
Wenn ich das auch so ähnlich interpretiere (und inzwischen tendiere ich dazu), würde ich aber einfach direkt in CMD
bzw für alle Unterordner von "D:\Ausgangsordner"
verwenden ...
Grüße
bastla
Wenn ich das auch so ähnlich interpretiere (und inzwischen tendiere ich dazu), würde ich aber einfach direkt in CMD
for /d %i in ("D:\Ausgangsordner\Ordner*") do move "%i\frame1\*.xxx" "%i\"
for /d %i in ("D:\Ausgangsordner\*") do move "%i\frame1\*.xxx" "%i\"
Grüße
bastla
Hallo Armin1893!
Zur Erklärung meines Ansatzes:
Mit der "
also:Verschiebe alle *.xxx-Dateien des Unterordners "frame1" von "%%i" nach "%%i" für jeden gefundenen Ordner durchgeführt werden ...
Grüße
bastla
Wenn ein Ordner ein Leerzeichen enthält, funktionerts leider nicht
Kann sich eigentlich nur auf die Version von der-blob beziehen - versuch es mit dieser Fassung davon:@echo off
setlocal enabledelayedexpansion
cd /d "%~dp0"
set "ausgang=%cd%"
for /f "delims=" %%a in ('dir /b /a:d') do (
set "NachOrdner=%ausgang%\%%a"
for /f "delims=" %%i in ('dir "!NachOrdner!" /b /a:d') do (
set "VonOrdner=!NachOrdner!\%%i"
echo move "!VonOrdner!\*.*" "!NachOrdner!"
echo rd "!VonOrdner!"
)
)
Mit der "
for /d
"-Schleife werden alle Ordner, die dem Suchmuster ("D:\Ausgangsordner\Ordner*") entsprechen, durchlaufen und deren Pfad jeweils in "%i" zur Verfügung gestellt - damit kann dann der Befehl move "%i\frame1\*.xxx" "%i"
Grüße
bastla