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

Batch für Kopieren bzw. Ersetzten, wenn...

Frage Microsoft Windows Tools

Mitglied: LoveBoat

LoveBoat (Level 1) - Jetzt verbinden

05.03.2009, aktualisiert 14:12 Uhr, 4460 Aufrufe, 9 Kommentare

Kopieren großer Datenmengen mit teilweise gleichen Dateinamen

Hallo,

Ich muss im Rahmen einer Datensicherung von verschiedenen Partitionen große Datenmengen zusammentragen und auf einen Sicherungsserver speichern. Dabei stoße ich immer wieder auf das Problem dass Dateien zwar gleich heißen, aber nicht die gleichen sind, da unterschiedlich groß.
Gibt es ein Batch oder einen cmd-Zeilen Code, der es mir ermöglicht gleichgroße Dateien zu ersetzen, ungleichgroße Dateien allerdings nicht zu ersetzen?

Wäre für Hilfe dankbar!

Gruß,
LB
Mitglied: bastla
05.03.2009 um 14:33 Uhr
Hallo LoveBoat!

Schematisch etwa so:
01.
for %i in ("D:\Quellordner\*.typ") do for %a in ("X:\Zielordner\%~nxi") do if %~zi==%~za copy "%i" %a
Als Batch natürlich jedes "%"-Zeichen verdoppeln.

Grüße
bastla
Bitte warten ..
Mitglied: LoveBoat
05.03.2009 um 15:22 Uhr
Yes, klappt! ...........................wunderbar!
Bitte warten ..
Mitglied: LoveBoat
11.03.2009 um 13:21 Uhr
So, jetzt doch noch zwei Sachen aufgefallen:

1. Ein Bericht wäre gut, dh. eine txt-file die mir sagt welche Dateien und welche nicht kopiert wurden.

2. Ich habe einen Denkfehler begangen; es sollen natürlich zunächst einmal ALLE, dh. auch diejenigen Dateien, die nicht im Zielordner aber in Ursprungsordner drinne sind verschoben / kopiert werden. Wenn dann welche sowohl in Ursprungs- als auch Zielordner vorliegen, dann soll diese Regelung greifen die nur die gleichgroßen kopiert. Was dann übrigbleibt hat zwar den selben Dateinamen, aber eine andere Größe. (Das würde dann auch einen Bericht überflüssig machen).
Bitte warten ..
Mitglied: bastla
11.03.2009 um 16:45 Uhr
Hallo LoveBoat!

Dann etwa so:
01.
@echo off & setlocal 
02.
set "Quelle=D:\Quellordner\*.typ" 
03.
set "Ziel=X:\Zielordner" 
04.
set "LogK=X:\Kopiert.txt" 
05.
set "LogNK=X:\NichtKopiert.txt" 
06.
 
07.
if exist "%LogK%" del "%LogK%" 
08.
if exist "%LogNK%" del "%LogNK%" 
09.
 
10.
for %%i in ("%Quelle%") do ( 
11.
    if not exist "%Ziel%\%%~nxi" ( 
12.
        copy "%%i" "%Ziel%" 
13.
        >>"%LogK%" echo %%i 
14.
    ) else ( 
15.
        for %%a in ("%Ziel%\%%~nxi") do if %%~zi==%%~za ( 
16.
            copy "%%i" "%Ziel%" 
17.
            >>"%LogK%" echo %%i 
18.
        ) else ( 
19.
            >>"%LogNK%" echo %%i 
20.
21.
22.
)
Grüße
bastla
Bitte warten ..
Mitglied: LoveBoat
12.03.2009 um 10:44 Uhr
OK Ich versuchs so. Als Batch müssen die "%" verdoppelt werden, so wars doch`?#

Bzw: An welcher Stelle muss ich was einfügen, verwirrend finde ich ("%Quelle%") und "%Ziel%\%%~nxi", welche Zeichen sollen stehen bleiben und welche muss ich rauslöschen wenn ich Quell- bzw Zielpfad einsetze?
Bitte warten ..
Mitglied: bastla
12.03.2009 um 10:56 Uhr
Hallo LoveBoat!

Ist bereits ein Batch (das Verdoppeln von "%" gilt vor allem für Laufvariable einer "for"-Schleife, aber nicht für jegliche "%").

An welcher Stelle muss ich was einfügen
Anzupassen wären eigentlich nur noch die Pfade in den Zeilen 2 bis 4 [Edit] auch Zeile 5 [/Edit].

Grüße
bastla
Bitte warten ..
Mitglied: LoveBoat
12.03.2009 um 11:48 Uhr
Hallo Bastla,

ja habs gemerkt. Allerdings gibt mir dieser Batch nur die kopierten Dateien als txt aus. Mich würde aber vielmehr interessieren welche nicht kopiert wurden. Am besten wäre, wie gesagt, er würde die Dateien nicht kopieren sondern verschieben, so dass im Quellordner nur Dateien mit selbem Namen aber verschiedener Größe übrigbleiben.
Bitte warten ..
Mitglied: bastla
12.03.2009 um 12:30 Uhr
Hallo LoveBoat!

Eigentlich solltest Du auch eine Datei "NichtKopiert.txt" (wie in Zeile 5 festgelegt - daher bitte auch diesen Pfad anpassen) erhalten - ansonsten "copy" durch "move" ersetzen.

Nur zur Sicherheit noch der Hinweis, dass "move" (wie auch "copy") gleichnamige Dateien im Zielordner ohne Rückfrage überschreibt.

Grüße
bastla
Bitte warten ..
Mitglied: LoveBoat
12.03.2009 um 13:06 Uhr
Ja, die Datei "NichtKopiert.txt" taucht leider nicht auf. Aber mit der "Move"-Variante dürfte das auch eigentlich nicht weiter tragisch sein.

Viele Dank!

Grüße.
LoveBoat
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch: alle Ordner mit einem bestimmten Namen kopieren (4)

Frage von Remsboys zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch aktuellsten Ordner kopieren (2)

Frage von MmarKuss zum Thema Batch & Shell ...

Windows Update
Abgelaufene und Ersetzte Updates - WSUS Intelligenz (6)

Frage von ofodag zum Thema Windows Update ...

Batch & Shell
gelöst Batch Datei Kopieren (17)

Frage von Frager zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 im Unternehmen? (26)

Frage von zorlayan zum Thema Windows 10 ...

LAN, WAN, Wireless
Ping u. DNS geht am Rechner nicht mehr (19)

Frage von Kuemmel zum Thema LAN, WAN, Wireless ...

Festplatten, SSD, Raid
Raid 1 2 SSD mit Windows Server 2016 (17)

Frage von jaywee zum Thema Festplatten, SSD, Raid ...

Voice over IP
Über Fritzfax over IP gehen nur einige Faxe (12)

Frage von shearer9 zum Thema Voice over IP ...