ahstax
Goto Top

Ordner mit bestimmter Zeichenfolge aus Quelle nach Ziel kopieren

Hallo,

ich möchte Ordner mit einer Batch-Datei aus einem Quellverzeichnis in ein Zielverzeichnis kopieren. Die zu kopierenden Ordner sind benannt "%username%_blabla".

Ich hab ein wenig recherchiert und aus dem Ergebnis das hier:
set "quelle=\\SERVER\Quellverzeichnis"  
for /f "tokens=*" %%i in ('dir /b /ad ^| find ^"%quelle%\%username%_^"') do (  
echo "%%i")  
gebastelt. Im Quellverzeichnis ist mindestens ein Ordner, der mit "%username%_" anfängt.

Kann mir bitte jemand einen Tipp geben?

Neugierige Grüße,
Andreas

Content-Key: 246280

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

Printed on: April 26, 2024 at 17:04 o'clock

Member: colinardo
Solution colinardo Aug 12, 2014 updated at 11:25:12 (UTC)
Goto Top
Moin Andreas,
@echo off & setlocal
set "quelle=\\SERVER\Quellverzeichnis"  
set "ziel=D:\Ordner"  
for /d %%i in ("%quelle%\%username%_*") do (  
  xcopy "%%i" "%ziel%\%%~ni" /K /R /E /I /S /C /H /Y  
)
oder mit Powershell so:
dir "\\SERVER\Quellverzeichnis\$($env:USERNAME)_*" | ?{$_.PSIsContainer} | move-item "D:\Zielordner" -force  
Grüße Uwe
Member: Sheogorath
Sheogorath Aug 12, 2014 at 10:33:54 (UTC)
Goto Top
Moin,

wie wäre es einfach mit robocopy?
robocopy /S /E "\\SERVER\Quellverzeichnis" "\\SERVER\Zielverzeichnis" %username%_*.*  


Das ist schon alles.

Gruß
Chris
Member: colinardo
colinardo Aug 12, 2014 updated at 10:43:33 (UTC)
Goto Top
Zitat von @Sheogorath:
wie wäre es einfach mit robocopy?
robocopy /S /E "\\SERVER\Quellverzeichnis" "\\SERVER\Zielverzeichnis" %username%_*.*
Das ist schon alles.
schon mal ausprobiert, geht nämlich so nicht face-wink

Grüße Uwe
Member: ahstax
ahstax Aug 12, 2014 at 11:06:33 (UTC)
Goto Top
Hallo Uwe,
hallo Chris,

DANKE für Eure Antworten.

Leider scheine ich was falsch zu machen, es wird nicht der Ordner sondern dessen Inhalt kopiert... face-sad
Im Quellordner vorhanden ist zu Testzwecken eine TXT-Datei "ah_bla.txt" und ein Ordner "ah_bla", in dem eine Datei xxx.txt ist. Das soll so alles im Zielordner wieder abgebildet werden... Wie kann ich denn aus/in der for-Schleife den ermittelten Ordnernamen abfragen?

set "ordnername=%username%_*"  
set "dateiname=%ordnername%.*"  
set "quelle=\\SERVER\Quelle"  
set "ziel=\\SERVER\Ziel"  

: Kopieren
: Dateien
xcopy "%quelle%\%dateiname%" "%ziel%\" /R /Y  

: Ordner
for /d %%i in ("%quelle%\%ordnername%") do (  
  xcopy "%%i" "%ziel%" /K /R /E /I /S /C /H /Y  
)
(KREISCHY ist ja mal ne schöne Eselsbrücke...)

Muss ich erst noch einen Ordner im Ziel erstellen, der so heißt, wie der Quellordner? Sollte sich der nicht automatisch anhand des zu kopierenden Quellordners erstellen?
Member: colinardo
Solution colinardo Aug 12, 2014 updated at 11:25:08 (UTC)
Goto Top
ändere die xcopy-Zeile 12 so ab:
xcopy "%%i" "%ziel%\%%~ni" /K /R /E /I /S /C /H /Y 
Grüße Uwe
Member: ahstax
ahstax Aug 12, 2014 at 11:25:31 (UTC)
Goto Top
Danke, perfekt!!! face-smile