Top-Themen

Aktuelle Themen (A bis Z)

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

Dateien aus einer Verzeichnisstruktur in eine andere kopieren wenn am Ziel schon vorhanden

Frage Entwicklung Batch & Shell

Mitglied: shorty-xs

shorty-xs (Level 1) - Jetzt verbinden

15.01.2009, aktualisiert 10:27 Uhr, 3103 Aufrufe, 2 Kommentare

Ich habe ja nun schon viele Informationen hier im Forum gefunden, nun möchte ich auch mal was zurück geben.

Nach einen Datenkrash wurden 2 Verzeichnisstrukturen wieder hergestellt. In der einen sind die Dateien OK, in der anderen der Verzeichnis baum.
Nun sollen die Dateien von A nach B kopiert werden, wenn die jeweilige Datei in B schon vorhanden ist, weil die Datein in B sich nicht öffnen lassen.

Ich habe die tools:
Wfolder2
Wbusy
Wprompt
winput
von Horst Schäffer benutzt, diese müssen im gleiche Verzeichnis wie die Batch datei abgelegt sein.
Es wird je Datum eine Logdatei erzeugt, darin enthalten sind Zeitstempel, der jeweiligen Aktion.
Es gibt eine Testfunktion, bei der erstmal nur untersucht wird und die zu kopierenden Daten ins Log geschrieben werden.
Die Arbeitsweise kann auf bestimmte Dateiendungen reduziert werden, da z.B. Bilder von einer Kamera gerne mal wieder bei DCFxyz001 anfangen, obwohl man die ja schonmal auf der Platte hat. So kann ich also mal mit anderen Dateiendungen anfangen und mich langsam durcharbeiten.
Ich bitte den deutsch/ englisch Mischmasch zu entschuldingen.

Vielleicht kann damit jemand was anfangen.

Hier der Source Code:
01.
:: sorter.cmd  
02.
:: (C) 2009 by Malte Schroeder  
03.
@echo off 
04.
color 02 
05.
set _title=File Sorter v1.0 by Malte Schroeder (C) 2009 
06.
title %_title% 
07.
 
08.
:start 
09.
::::::::::::::::::::::::::::::::::::: 
10.
::   Eingangsvariablen definieren  :: 
11.
::::::::::::::::::::::::::::::::::::: 
12.
set _input=leer 
13.
set _output=leer 
14.
set _mode=leer 
15.
::::::::::::::::::::::::::::::::::::: 
16.
::   Dateiendung definieren        :: 
17.
::::::::::::::::::::::::::::::::::::: 
18.
winput "set _ext=$input" "Please enter file extension (3 letters only) or * for all" > %temp%\ext.cmd 
19.
if errorlevel 1 goto ende 
20.
call %temp%\ext.cmd 
21.
del %temp%\ext.cmd 
22.
 
23.
::::::::::::::::::::::::::::::::::::: 
24.
::   Input Verzeichnis definieren  :: 
25.
::::::::::::::::::::::::::::::::::::: 
26.
if [%_input%]==[leer] call :fldsel Input 
27.
set _input=%_fldr% 
28.
if [%_output%]==[leer] call :fldsel Output 
29.
set _output=%_fldr% 
30.
::::::::::::::::::::::::::::::::::::: 
31.
::   Input Verzeichnis lesen       :: 
32.
::::::::::::::::::::::::::::::::::::: 
33.
start wbusy "File Sorter" "Read Input Directory" /marquee 
34.
dir %_input%\*.%_ext% /b /s > in.txt 
35.
wbusy "File Sorter" "Read Input Directory" /stop /timeout=1 
36.
::::::::::::::::::::::::::::::::::::: 
37.
::   Output Verzeichnis lesen      :: 
38.
::::::::::::::::::::::::::::::::::::: 
39.
start wbusy "File Sorter" "Read Output Directory" /marquee 
40.
dir %_output% /b /s > out.txt 
41.
wbusy "File Sorter" "Read Output Directory" /stop /timeout=1 
42.
::::::::::::::::::::::::::::::::::::: 
43.
::   Arbeitsmodus auswählen        :: 
44.
::::::::::::::::::::::::::::::::::::: 
45.
wprompt "%_title%" "Do you want to use Test mode" YesNoCancel ? 
46.
if errorlevel 3 goto ende 
47.
if errorlevel 2 set _mode=sharp 
48.
if errorlevel 1 set _mode=test 
49.
if %_mode%==sharp ( 
50.
          wprompt "%_title%" "ATTENTION You don't use Test-mode, target files could be permanently damaged!" YesNo ! 
51.
		  if errorlevel 2 goto ende 
52.
53.
::::::::::::::::::::::::::::::::::::: 
54.
::  Vergleich starten und kopieren :: 
55.
::::::::::::::::::::::::::::::::::::: 
56.
start wbusy "File Sorter" "Sorting in Progress...." /marquee 
57.
for /F "delims=" %%I in (in.txt) do call :subfinder "%%I" 
58.
wbusy "File Sorter" "Sorting done." /stop /timeout=0 
59.
goto ende 
60.
 
61.
:fldsel 
62.
set _fldr= 
63.
Wfolder2 "set _fldr=" "%userprofile%" "%1 directory" > %temp%\folder.cmd 
64.
call %temp%\folder.cmd 
65.
del %temp%\folder.cmd 
66.
goto :eof 
67.
 
68.
:subfinder 
69.
for /F "delims=" %%A in (out.txt) do ( 
70.
   if "%~nx1" == "%%~nxA" ( if %_mode%==sharp (xcopy %1 "%%A" /y /h /v /l /r  
71.
   echo %time% -- kopiere %1 nach "%%A" >> %date%.log) else ( echo %1 would be copied to %%A 
72.
		 echo %time% %1 would be copied to %%A >> %date%.log) 
73.
74.
75.
goto :eof 
76.
 
77.
:ende  
78.
del in.txt 
79.
del out.txt 
80.
set _input= 
81.
set _output= 
82.
notepad %date%.log
Greetz
Malte
Mitglied: Iwan
15.01.2009 um 12:15 Uhr
Mahlzeit,

warum einfach wenn es auch kompliziert geht:
01.
xcopy QUELLE ZIEL /s /v /u /y
Bitte warten ..
Mitglied: shorty-xs
15.01.2009 um 12:20 Uhr
Weil beide Verzeichnisstrukturen komplett unterschiedlich sind. Das Ziel enthält die ursprüngliche Sortierung der Dokumente, beim wiederherstellen der Daten (das was jetzt die Quelle ist) sind die Verzeichnisse maximal 2 Abzweigungen tief und einfach durchnummeriert. Ich muss also erstmal feststellen welche Datei wohin kopiert werden soll.

Wenn das so einfach gesesen währe, hätte ich die dateien auch einfach per drag'n drop rüberziehen können.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
FTP mit wput nur vorhandene Dateien im Ziel kopieren
gelöst Frage von Otto1699Batch & Shell7 Kommentare

Hallo, ich habe Dateien auf einer Windows Maschine und Dateien auf einer Linux Maschine im gleichen Netzwerk. Nun möchte ...

Batch & Shell
Dateien in einer Verzeichnisstruktur komprimieren und Ursprungsdatei löschen
gelöst Frage von kayes73Batch & Shell4 Kommentare

Hallo zusammen! Folgendes möchte ich bewerkstelligen: Ich habe auf einer Festplatte in einer bestimmten Datenstruktur xml Daten liegen. Diese ...

Windows 7
Verzeichnisstruktur inkl. Sicherheits- und Dateiinformationenohne ohne Inhalt kopieren
gelöst Frage von drapoelWindows 75 Kommentare

Servus, ich möchte mit Robocopy eine Verzeichnisstruktur ohne Inhalt copieren. (Auf die Verzeichnisse sind AD Berechtigungen gesetzt.) Mit XCOPY ...

Batch & Shell
Ordner mit bestimmter Zeichenfolge aus Quelle nach Ziel kopieren
gelöst Frage von ahstaxBatch & Shell6 Kommentare

Hallo, ich möchte Ordner mit einer Batch-Datei aus einem Quellverzeichnis in ein Zielverzeichnis kopieren. Die zu kopierenden Ordner sind ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 107 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless8 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Windows 10
Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App
Tipp von kgbornWindows 107 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...