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, 4449 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
Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(38)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
POS Hardware und alternativen zu Raid 1? (21)

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

Windows 10
gelöst Windows 10 Home "Netzlaufwerk nicht bereit" (19)

Frage von Oggy01 zum Thema Windows 10 ...

Viren und Trojaner
Verschlüsselungstrojaner simulieren (18)

Frage von AlbertMinrich zum Thema Viren und Trojaner ...

Exchange Server
Exchange Postfach leeren - nicht löschen (11)

Frage von AndreasOC zum Thema Exchange Server ...