147738
Goto Top

CMD: Move Dateien in einen anderen Ordner

Hallo liebe IT Profis,
ich benötige erneut euer Fachwissen.

Ich versuche eine BAT zu erstellen, die aus einem Ordner den kompletten Inhalt (samt SubOrdner, Docxs, PDFs, usw...) in einen anderen verschiebt und sich selbst dann löscht.
Der Pfad sieht wie folgt aus:
C: \Quelle\Projekt_324\
zu
C:\Ziel

In dem Ordner Quelle befindet sich nur EIN Ordner (in dem Fall Projekt_324)
Das Problem ist, dass jeder Ordner "Projekt" noch eine lfd. Nummer angehängt bekommt, sodass ich diesen Ordner irgendwie überspringen muss, um auf die Dokumente darunter Zugriff zu bekommen und diese dann zu moven.

Hätte vielleicht einer von euch eine Idee?

Meine bisherige Überlegung sieht wie folgt aus:
for /D %%a in ("C:\Quelle\*") do (  
move /Y "%%~a" "C:\Ziel"  
"if errorlevel 1 goto :error"  
del "%%~fa"  
":error"  
)

Vielen Dank schonmal!

Content-ID: 656119

Url: https://administrator.de/forum/cmd-move-dateien-in-einen-anderen-ordner-656119.html

Ausgedruckt am: 08.04.2025 um 01:04 Uhr

TK1987
Lösung TK1987 25.02.2021 aktualisiert um 15:51:20 Uhr
Goto Top
Moin,

@echo off
set Quelle=C:\Quelle
set Ziel=C:\Ziel
(for /f "Delims=" %%a in ('dir /b "%Quelle%"') do move "%Quelle%\%%a" "%Ziel%\") && rd /q "%Quelle%"  

Gruß Thomas
mayho33
mayho33 25.02.2021 aktualisiert um 16:52:12 Uhr
Goto Top
Verwende dich einfach Robocopy! Bei W10 schon on Board.

Robocopy "sourceFolder" "destinationfolder" /e /s  

Fertig!
erikro
erikro 25.02.2021 um 17:49:00 Uhr
Goto Top
Moin,

wozu ein Batch? In der Powershell ein Einzeiler:

Get-ChildItem C:\data\test\quelle\ -Directory | %{Move-Item -Path "$($_.FullName)\*" -destination "C:\data\test\ziel\";remove-item $_.fullname}  

hth

Erik
147738
147738 25.02.2021 aktualisiert um 22:10:42 Uhr
Goto Top
@thomas: Vielen Dank für dein Antwort! Das ganze würde aber nur den Projekt-Ordner verschieben. Ich würde gerne einen Weg finden, diesen variabel benannten Ordner zu überspringen und dann diesen Inhalt wiederum zu verschieben.
TK1987
TK1987 26.02.2021 aktualisiert um 10:25:58 Uhr
Goto Top
Zitat von @147738:
Ich würde gerne einen Weg finden, diesen variabel benannten Ordner zu überspringen und dann diesen Inhalt wiederum zu verschieben.
@echo off
set Quelle=C:\Quelle
set Ziel=C:\Ziel
for /f "Delims=" %%a in ('dir /b /ad "%Quelle%"') do (  
  (for /f "Delims=" %%b in ('dir /b "%Quelle%\%%a"') do move "%Quelle%\%%a\%%b" "%Ziel%\") && rd /q "%Quelle%\%%a"  
) 

oder wie @erikro schon geschrieben hat, mit Powershelleinzeiler.

Gruß Thomas