Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Xcopy - Kopien im weiteren Zielordner speichern

Frage Entwicklung Batch & Shell

Mitglied: 88729

88729 (Level 1)

15.03.2010 um 09:28 Uhr, 5226 Aufrufe, 10 Kommentare

Ich versuche, eine Batch-Datei zu schreiben. Damit möchte ich mit Xcopy vom Quellordner Dateien in einen Ordner "Ziel1" kopieren. Der Parameter /D stellt sicher, dass nur die neuen oder geänderten Dateien kopiert werden. Das klappt gut.

Ich benötige die kopierten Dateien jedoch auch in einem Ordner "Ziel2". Dort werden sie in ein anderes Dateiformat konvertiert. In diesen Ordner ("Ziel2") sollen ausschließlich diejenigen Dateien kopiert werden, die bei dem jeweiligen Aufruf des Befehls Xcopy in den Ordner "Ziel1" kopiert wurden.
Mitglied: bastla
15.03.2010 um 09:45 Uhr
Hallo MaexchenS und willkommen im Forum!

In diesem Fall kannst Du Dir den Schalter "/L" zunutze machen, um vorweg eine Liste der benötigten Dateien zu erzeugen - diese Liste kannst Du dann per "for /f"-Schleife abarbeiten und jeweils beide Kopiervorgänge ausführen ...

Grüße
bastla
Bitte warten ..
Mitglied: edepfau
15.03.2010 um 12:46 Uhr
da gibt es einige Wege...
ich würde in einem Batchfile
a) alle Dateien in Ziel1 das A-Attribut zurücksetzen: "attrib -A ziel1\*.*"
b) xcopy nach Ziel1 durchführen
c) xcopy mit den selben Optionen plus "/A" von Ziel1 nach Ziel2

Vorteil: xcopy kann mehr als der copy-Befehl, z.B. ACLs und hidden Attribute erhalten, oder rekursiv kopieren (Bäume).

Ede
Bitte warten ..
Mitglied: 88729
16.03.2010 um 05:59 Uhr
Hallo bastla,

danke für die schnelle Hilfe! Ich habe das gleich ausprobiert. Die Batchdatei hat die Dateien vom Quelllaufwerk wunschgemäß sowohl in das Laufwerk Ziel1 als auch Ziel2 geschrieben. Als ich die Stapelverarbeitungsdatei ein zweites mal aufgerufen habe, hat es jedoch leider nicht nur die zwischenzeitlich im Quelllaufwerk hinzugekommenen Dateien kopiert, sondern wiederrum alle dort gespeicherten Dateien (rund 15.000!). Ich habe also einen Fehler bei der Anwendung von FOR gemacht.

Kann mir jemand helfen, diesen Fehler zu korrigieren? Meine Batchdatei lautet auszugsweise:

set Quelle="T:"
set Ziel1="c:\k13$_Mir\001"
set Ziel2="C:\k13$_Mir\doc"
FOR /F %%l IN ('xcopy /s /d /l %Quelle% %Ziel1%') DO Xcopy /d /y %%l %Ziel1%
cd /d %Ziel2%
rename *.009 *.doc 2>nul

Hinzufügen muss ich noch: %Quelle% ist ein Laufwerk mit zahllosen Ordnern und Unterordnern (und RENAME funktioniert - meines (geringen) Wissens nach - nur auf einer Ordnerebene.

Sorry für die Nachfrage, aber alleine bekomme ich es nicht hin!

Grüße
MaexchenS
Bitte warten ..
Mitglied: bastla
16.03.2010 um 13:28 Uhr
Hallo MaexchenS!

Falls ich Dich richtig verstehe, könntest Du es so versuchen:
01.
set Quelle="T:\" 
02.
set Ziel1="C:\k13$_Mir\001" 
03.
set Ziel2="C:\k13$_Mir\doc" 
04.
for /f %%i in ('xcopy /s /d /l /y %Quelle% %Ziel1%') DO ( 
05.
    xcopy /y "%%i" %Ziel1% 
06.
    xcopy /y "%%i" %Ziel2% 
07.
08.
for /r %Ziel2% %%i in (*.009) do ren "%%i" *.doc
Grüße
bastla
Bitte warten ..
Mitglied: 88729
17.03.2010 um 09:06 Uhr
Hallo bastla,

leider kein Erfolg. Die Batchdatei kopiert zwar die Daten in die beiden Zielordner, bei einem erneuten Ausführen kopiert es jedoch nicht nur die im Quellordner neu hinzugekommenen Dateien, sondern alle dort vorhandenen Files (also auch die, die bereits in den Zielordnern stehen).

Grüße
MaexchenS
Bitte warten ..
Mitglied: bastla
17.03.2010 um 11:58 Uhr
Hallo MaexchenS!

Da beim Kopieren in diesem Fall das Änderungsdatum verglichen wird, wäre das Kopieren der bereits vorhandenen Dateien nur mit einem neueren Datum (inkl Uhrzeit) der Quelldatei zu erklären ...

Ein Unterschied könnte sich zB ergeben, wenn die Partition T: mit FAT32 formatiert ist.
Wenn das Ziel wäre, tatsächlich nur Dateien zu kopieren, die im Zielordner noch nicht vorhanden sind, könntest Du es so versuchen:
01.
set Quelle="H:\ADM" 
02.
set Ziel1="K:\k13$_Mir\001" 
03.
set Ziel2="K:\k13$_Mir\doc" 
04.
 
05.
set Ex=%temp%\Exclude.txt 
06.
xcopy /s /u /l /y %Quelle% %Ziel1%>%Ex% 
07.
xcopy /s /exclude:%Ex% %Quelle% %Ziel1% 
08.
xcopy /s /exclude:%Ex% %Quelle% %Ziel2%
Grüße
bastla
Bitte warten ..
Mitglied: edepfau
17.03.2010 um 12:14 Uhr
(liest das hier einer?)
Ich hatte ja bereits vorgeschlagen, das A-Attribut zu benutzen. Dazu ist es ja da.

Das hier sollte funktionieren:
01.
set Quelle="T:\"  
02.
set Ziel1="C:\k13$_Mir\001"  
03.
set Ziel2="C:\k13$_Mir\doc" 
04.
set OPTS=/s /m /y /i /h /r /k  
05.
xcopy %OPTS% %Quelle% %Ziel1% 
06.
xcopy %OPTS% %Ziel1% %Ziel2% 
07.
for /r %Ziel2% %%d in (.) do ren %%d\*.009 *.doc
Bei den OPTS wird berücksichtigt, dass die Attribute mitkopiert werden (z.B. readonly).
Nebenbei, die Schleife für das rename ist so geschrieben, dass der Befehl nur einmal pro Verzeichnis ausgeführt werden muss, und nicht 15.000 mal.

HTH,
Ede
Bitte warten ..
Mitglied: 88729
28.03.2010 um 17:05 Uhr
Hallo bastla,

die Partition T: ist mit NTFS formatiert.

Aber dein Vorschlag mit der Exclude-Funktion hat funktioniert! Es werden nur noch die neu hinzugekommenen Dateien kopiert. Danke für deine Hilfe!

Gruß
MaexchenS
Bitte warten ..
Mitglied: 88729
28.03.2010 um 17:11 Uhr
Hallo Ede,

doch doch, das hat einer gelesen (zumindest ich). Ich habe deinen Vorschlag auspropbiert. Er funktioniert (und ist sehr viel schneller als die Lösung über die Exclude-Funktion). Danke!!

Nur noch ganz kurz zum Hintergrund meiner Frage: Auf dem Quell-Lufwerk habe ich nur Leserechte. Dort sind Word-Dateien gespeichert, deren Extension .doc durch .00* (wobei * für eine Ziffer zwischen 0 und 9 steht) ersetzt worden ist. Dies hat zur Folge, dass bei den mir zur Verfügung stehenden Desktop-Suchprogramme (Copernic und Windows desktop search) die Vorschaufunktion nicht mehr korrekt arbeitet. Deshalb die Idee, die Dateien auf ein Laufwerk zu kopieren, auf dem ich Scheibrechte habe (also wieer die Dateikennung .doc vewenden kann). Um die Belstung des Systems durch Kopieren und Indexieren zu veringern ist es mir wichtig, nur die neu hinzugekommenen Dateien zu kopieren.

Danke & Gruß
MaexchenS
Bitte warten ..
Mitglied: bastla
28.03.2010 um 18:54 Uhr
Hallo MaexchenS und edepfau!

Schön, dass das Ganze jetzt funktioniert - etwas überraschend ist dabei, dass ein "xcopy /m" in einem Quellpfad, für welchen nur Leserechte bestehen, das Archiv-Flag rücksetzen kann ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst VBA-Makro verschwindet nach Speichern (5)

Frage von lupi1989 zum Thema VB for Applications ...

Windows 10
Citrix Receiver - Benutzernamen speichern (2)

Frage von hendrik.vondankbahr zum Thema Windows 10 ...

Microsoft Office
gelöst Word stürtzt beim schließen oder speichern ab (8)

Frage von BoomBasti zum Thema Microsoft Office ...

Verschlüsselung & Zertifikate
gelöst Symantec PGP Desktop - Emails unverschlüsselt speichern (3)

Frage von SirTobi27 zum Thema Verschlüsselung & Zertifikate ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (19)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...