[Batch] Dateien kopieren / verschieben?

jo89

Commander
Registriert
Apr. 2011
Beiträge
2.168
Hallo Leute,
ich stehe gerade etwas auf dem Schlauch da ich bei meiner Google Suche nix brauchbares finden konnte.

Ich habe ca 1000 Ordner die folgendermaßen aufgebaut sind,
Ordner A -> Ordner B -> Inhalt

Ich möchte nun den Inhalt aus Ordner B in den Ordner A kopieren/verschieben und anschließen den Ordner B löschen.

Meine Versuche mit der Console bzw ner Batchdatei sind bis jetzt alle fehlgeschlagen. Hat jemand evtl einen Tip für mich?


Ps.: Ich entschuldige mich wenn ich im falschen Unterforum bin.
 
Ungetestet:
Code:
@echo off
set p=C:\dein\pfad
setlocal enabledelayedexpansion
for /f "delims=;" %%a in ('dir /B "%p%\*"') do ( ; 1. ebene - ordner a
  for /f "delims=;" %%b in ('dir /B "%%a\*"') do ( ; 2. ebene - ordner b
    for /f "delims=;" %%i in ('dir /b "%%b\*"') do ( ; inhalt
      move "%%i" "%%a%%~ni"
      rmdir /Q "%%b"
    )
  )
)
Bin mir nur gerade bei %%~ni unsicher, evtl. wäre das auch %%~fi. Musst du mal austesten. Am besten erstmal jeweils ein echo vor move und rmdir, dann lässt du dir erstmal anzeigen, was gelöscht und verschoben wird.
 
Die Batch von oben funktioniert leider nicht. Weder mit ~ni noch mit ~fi.

Ich habe mich wohl auch schlecht ausgedrückt. "Ordner A, B" usw beschreibt nur die Struktur. Der Tatsächliche Name der Ordner und deren Inhalte variieren.
 
dh, du willst rekursiv kopieren, dazu musst du den Pfad zerlegen.

Code:
@echo off &Setlocal enabledelayedexpansion
set Ziel=C:\Test

For /F "Tokens=* Delims=" %%i in ('dir /B /AD %Ziel%') DO Set Pfad="%%~ni" &Call :SUB

:SUB
Pushd %Ziel%\%Pfad%
Move *.* "%Ziel%\%%~ni"
Popd
Pause

Ich hab jetzt die Batch auch nicht getestet, aber FOR Schreifen kannst du nicht so einfach hintereinander verwenden.
 
Zuletzt bearbeitet:
Zurück
Oben