rene-n
Goto Top

Wie verschiebe ich Dateien aus einem Ordner per batch

Schönen Guten Tag ,

Ich hoffe es kann mir einer weiterhelfen....

Ich möchte gerne den Inhalt verschiedener Ordner, in ein anderen Ordner verschieben lassen, dabei haben die quell-Ordner sowohl in der ersten, als auch in der zweiten Ebene,
willkürliche Namen nur in der zweiten Ordnerebene ist aber immer der Name „test01“ enthalten.

Das ganze sieht in etwa so aus.

Beispiel - Folder Quelle: (alle Ordner werden über eine Rendering Software erzeugt die immer anders benannt werden.)

D:\OUT\iphone_ghf2131\0598_test01_74\*.*
D:\OUT\nokia_4hffg\rrgk_test01_55\*.*

Mich interessiert nur der Inhalt der in den Ordnern mit „test01“ liegt. Diesen muss ich dann nach…

Folder Ziel:

H:\Export\test01\

…verschieben.

Das ganze soll dann über einen geplanten Task ausgeführt werden. leider kenne ich mich mit Batch Scripting nicht aus und hab's schon verzweifelt versucht hinzubekommen das
System auf dem es ausgeführt werden soll, ist Windows 7 64bit. Weiß nicht ob das überhaupt mit robocopy und xcopy zu schaffen ist.

Grüße Rene

Content-ID: 166828

Url: https://administrator.de/forum/wie-verschiebe-ich-dateien-aus-einem-ordner-per-batch-166828.html

Ausgedruckt am: 23.04.2025 um 02:04 Uhr

Friemler
Friemler 24.05.2011 um 17:40:11 Uhr
Goto Top
Hallo Rene-N,

sollte so gehen:
@echo off

setlocal


set "SrcDir=D:\OUT"  
set "DestDir=H:\Export"  

set "Criterium=test01"  


for /f "delims=" %%f in ('dir /b /a:d "%SrcDir%" 2^>NUL') do (  
  for /f "delims=" %%d in ('dir /b /a:d "%SrcDir%\%%f\*%Criterium%*.*" 2^>NUL') do (  
    xcopy /KREISCHY "%SrcDir%\%%f\%%d\*.*" "%DestDir%\%Criterium%\"  
  )
)

Gib in einem Konsolenfenster mal xcopy /? ein und schau nach, ob die gesetzten Optionen (KREISCHY) für Dich so passen.

Du solltest Dir außerdem 100%-ig sicher sein, dass es in den verschiedenen Quellordnern keine Dateien/Verzeichnisse mit gleichem Namen gibt, die würden sich im Ziel gegenseitig überschreiben... Oder habe ich bei der Problemstellung etwas falsch verstanden? Soll im Zielverzeichnis für jedes Quellverzeichnis ein eigenes Verzeichnis erstellt werden?

Gruß
Friemler
Rene-N
Rene-N 24.05.2011 um 18:08:14 Uhr
Goto Top
Hallo Friemler,

Super.... Danke für deine schnelle Antwort. Also dein Script Funktioniert auf anhieb face-smile

Was müsste ändern wenn ich statt kopieren nur verschieben möchte... ?


Quelle D.\OUT
Ziel D:\Export

Gruß Rene
Friemler
Friemler 24.05.2011 um 18:17:59 Uhr
Goto Top
Hallo Rene-N,

füge nach der XCOPY-Zeile folgendes ein:
rd /s /q "%SrcDir%\%%f\%%d"
Das würde die Verzeichnisse, die test01 im Namen enthalten, und alles darunter löschen.

Sei Dir aber über die Gefahren im klaren, die ich bei meinem obigen Posting noch ergänzt habe.

Gruß
Friemler
Rene-N
Rene-N 24.05.2011 um 18:43:49 Uhr
Goto Top
Super... vielen Dank für deine Hilfe @Friemler. werds morgen gleich testen...

Ich wünsch dir noch einen schönen Tag!

Grüße Rene
Rene-N
Rene-N 26.05.2011 um 11:19:02 Uhr
Goto Top
Hallo Friemler,

Noch mal vielen Dank für dein Schript funktioniert alles bestens... Ich muss jetzt alledings noch zwei weitere ordner durchsuchen und dessen inhalt kopieren das gestalltet sich aber ein wenig komplexer

Unter D:\OUT sind zwei ordner Test02 und Test03 in diesen sind jeweils die unterordner "intro_firma" und "no_intro_firma" die ich durchsuchen- und dessen hinhalt kopieren soll...

Ziel für Test02 - Intro_Firma
H:\Firma\INTRO"

Ziel für Test02 - No_Intro_Firma
H:\Firma\NO_INTRO


Ziel für Test03 - Intro_Firma
H:\Firma\INTRO"

Ziel für Test03 - No_Intro_Firma
H:\Firma\NO_INTRO


hast du dafür eventuell auch noch eine lösung parat ?

Viele Grüße Rene
Friemler
Friemler 26.05.2011 um 12:00:18 Uhr
Goto Top
Hallo Rene,

so wie Du das beschreibst, ließe sich das doch mit ein paar (genauer: 4) "hartcodierten" XCOPY-Befehlen lösen, also nach dem Muster:
xcopy /KREISCHY "D:\OUT\Test02\intro_firma\*.*" "H:\Firma\INTRO\"

Gruß
Friemler
Rene-N
Rene-N 26.05.2011 um 13:42:10 Uhr
Goto Top
Sorry mein fehler, hab's bissel falsch erklärt... es hat sich auch gerade was geändert so sieht die finale struktur aus

also unter D:\OUT gibt es willkürlich erzeugte ordner wo der name test02 und test03 drin vorkommt.

bsp.

29302_test02_en
38892_test02_rig
440499_test03_man
90223_test03_del

etc..

in dennen sind immer jeweils die gleichen order "INTRO" und "NO_INTRO" enthalten, dessen inhalt ich getrennt in verschiedene ordner kopieren soll.


Ziel für Test02: - (inhalt vom Ordner "INTRO")
H:\Export\Test02\Cut
Ziel für Test02: - (inhalt vom ordner "NO_INTRO")
H:\Export\Test02\Final


Ziel für Test03: - (inhalt vom Ordner "INTRO")
H:\Export\Test03\Cut
Ziel für Test03: - (inhalt vom ordner "NO_INTRO")
H:\Export\Test03\Final


Grüße Rene
Friemler
Friemler 26.05.2011 um 15:02:30 Uhr
Goto Top
Hallo Rene,

Zitat von @Rene-N:
dessen inhalt ich getrennt in verschiedene ordner kopieren soll.

also arbeitest Du im Auftrag und bekommst das bezahlt? Oder bist Du Azubi und das ist eine Übungsaufgabe? In beiden Fällen ist das jetzt meine letzte Hilfestellung. In Zukunft: Start -> Ausführen -> brain.exe

Die Lösung für das jetzige Problem lässt sich (mit etwas gutem Willen und Nachdenken) aus der vorherigen Lösung ableiten. Fragen zur Funktionsweise (wenn sie denn gestellt werden) beantworte ich gerne. Außerdem gibt es noch mein Tutorial zur FOR-Schleife.

@echo off

setlocal


set "SrcDir=D:\OUT"  
set "DestDir=H:\Export"  

set "Criteria=test02 test03"  


for %%a in (%Criteria%) do (
  for /f "delims=" %%b in ('dir /b /a:d "%SrcDir%\*%%a*.*" 2^>NUL') do (  
    xcopy /KREISCHY "%SrcDir%\%%b\INTRO\*.*" "%DestDir%\%%a\Cut"  
    xcopy /KREISCHY "%SrcDir%\%%b\NO_INTRO\*.*" "%DestDir%\%%a\Final"  
  )
)

Gruß
Friemler