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-Key: 656119

Url: https://administrator.de/contentid/656119

Printed on: April 19, 2024 at 16:04 o'clock

Member: TK1987
Solution TK1987 Feb 25, 2021 updated at 14:51:20 (UTC)
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
Member: mayho33
mayho33 Feb 25, 2021 updated at 15:52:12 (UTC)
Goto Top
Verwende dich einfach Robocopy! Bei W10 schon on Board.

Robocopy "sourceFolder" "destinationfolder" /e /s  

Fertig!
Member: erikro
erikro Feb 25, 2021 at 16:49:00 (UTC)
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
Mitglied: 147738
147738 Feb 25, 2021 updated at 21:10:42 (UTC)
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.
Member: TK1987
TK1987 Feb 26, 2021 updated at 09:25:58 (UTC)
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