cali169
Goto Top

Via Batch neuesten Ordner in einem Verzeichnis auslesen und kopieren

hallo zusammen,

habe gesucht, einiges gefunden aber nicht die Lösung für meine Anforderung.
Hoffe ihr könnt mir weiterhelfen. Vielen Dank im Voraus.

Anforderung.

in einem Verzeichnis wird täglich ein neuer Ordner (Name des Ordners "Ordner_tt.mm.yyyy) erstellt, welcher ein Backup auf Fileebene enthält.
wie kann ich via batch den neuesten Ordner ermitteln, damit ich den Ordner inklusive Unterordner via xcopy in ein anderes Verzeichnis kopieren kann?

Content-ID: 212298

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

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

Endoro
Endoro 24.07.2013 um 10:52:18 Uhr
Goto Top
Servus,

nimm eine for Schleife, pack den dir Befehl rein (Hilfe an der Kommandozeile: for /?, dir /?).
Deine Frage ist nicht aussergewöhnlich.
Bereits hier im Forum findest du sie mehrfach beantwortet.

lg
cali169
cali169 24.07.2013 um 10:58:14 Uhr
Goto Top
hi Endoro,

thx für deine Antwort. leider bin ich ein Newbie was Batch angeht. Ferner habe ich mir die Hilfe zu Dir und For in der CMD angesehen. Habe meist eine Lösung für Dateien aber nicht für Ordner gefunden welche bei mir aber auch nicht funktionierten.
colinardo
colinardo 24.07.2013 um 11:05:09 Uhr
Goto Top
Hallo cali169,
ginge z.B. so:
(Verzeichnisse in Zeile 2 und 3 noch an deine Gegebenheiten anpassen)
@echo off & setlocal ENABLEDELAYEDEXPANSION
set "rootfolder=C:\Verzeichnis"  
set "targetfolder=C:\Zielverzeichnis"  
for /f "tokens=* delims=" %%g IN ('dir /B /AD /TC /O-D "%rootfolder%\Ordner_*"') DO @(  
	xcopy /E /Y "!rootfolder!\%%g" "!targetfolder!\%%g\"  
	goto end
)
:end

Grüße Uwe
Gelöste Beitrage bitte auch als solche markieren.Danke.
cali169
cali169 24.07.2013 um 11:17:04 Uhr
Goto Top
Hallo Uwe,

vielen Dank für Deine Hilfe. Habe es angepasst. Es wird aber keine Datei kopiert.
Habe eine Pause eingefügt, es wird mir gesagt das er keine Datei findet.
Die Verzeichnispfade sind korrekt auch der Ordnername.
Hast Du noch ne Idee? thx im Voraus.

Grüsse Sven

01. @echo off & setlocal ENABLEDELAYEDEXPANSION

02. set "rootfolder=C:\temp\test"

03. set "targetfolder=C:\temp\test2"

04. for /f "tokens=* delims=" %%g IN ('dir /B /AD /TC /O-D "%rootfolder%\mgdtrs_*"') DO @(

05. xcopy /E /Y "!rootfolder!\%%g" "!targetfolder!\%%g\"

06. goto end

07. )

08. pause

09. :end
colinardo
colinardo 24.07.2013 aktualisiert um 11:32:28 Uhr
Goto Top
kommt als Meldung 0 Datei(en) kopiert ? sind denn überhaupt Dateien in dem Ordner mgdtrs_* ?
hier geht's ohne probleme

du hast das aber hoffentlich nicht mit den Zahlen am Anfang in deine Batch kopiert ...
bitte benutze hier Tags für das einstellen von Code. Danke.
cali169
cali169 24.07.2013 um 11:32:53 Uhr
Goto Top
hi Uwe,

ich weiss nicht wieso aber jetzt geht es. Vielleicht hatte ich Irgendwo ein Leer mit drin.

Vielen, Vielen Dank für Deine Hilfe und gelernt habe ich auch was.

grüsse sven