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

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

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

Member: Friemler
Friemler May 24, 2011 at 15:40:11 (UTC)
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
Member: Rene-N
Rene-N May 24, 2011 at 16:08:14 (UTC)
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
Member: Friemler
Friemler May 24, 2011 at 16:17:59 (UTC)
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
Member: Rene-N
Rene-N May 24, 2011 at 16:43:49 (UTC)
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
Member: Rene-N
Rene-N May 26, 2011 at 09:19:02 (UTC)
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
Member: Friemler
Friemler May 26, 2011 at 10:00:18 (UTC)
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
Member: Rene-N
Rene-N May 26, 2011 at 11:42:10 (UTC)
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
Member: Friemler
Friemler May 26, 2011 at 13:02:30 (UTC)
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