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
GELÖST

Datum per Batchdatei prüfen und vergleichen

Frage Entwicklung Batch & Shell

Mitglied: EnricoS

EnricoS (Level 1) - Jetzt verbinden

08.08.2008, aktualisiert 11.08.2008, 5852 Aufrufe, 7 Kommentare

Guten Tag

Habe ein problem.
Ich will Dateien prüfen auf ihr datum und die Dateien vergleich.

Habe das schon mal versucht mit der Zeile

c:If (dir C:\quelle\%1 \t:w) > (dir C:\ziel\%1) goto :ZIEL_NEUER else :QUELLE_NEUER

aber so richtig geht das nicht.Wäre nett wenn jemand helfen könnte.
Mitglied: bastla
08.08.2008 um 12:01 Uhr
Hallo EnricoS und willkommen im Forum!

Bevor wir hier anfangen, Kunststücke mit Datumszerlegungen und -vergleichen anzustellen: Was hast Du eigentlich dann weiter vor? Sollte es nur ein Kopieren sein, würde "xcopy /d" schon genügen, wobei sich das auch (für eine einzelne Datei in %1) so einsetzen ließe:
01.
@echo off & setlocal 
02.
xcopy /d /l /y "C:\quelle\%1" "C:\ziel\%1"|findstr /b /c:"0 Datei(en) kopiert">nul && goto :QUELLE_NICHT_NEUER 
03.
echo Quelle ist neuer ... 
04.
goto :eof 
05.
 
06.
:QUELLE_NICHT_NEUER 
07.
echo Quelle ist nicht neuer ...
Grüße
bastla
Bitte warten ..
Mitglied: EnricoS
08.08.2008 um 13:33 Uhr
Also die ganze sache ist dafür gedacht das wenn unser außendienstler kommt und daten geändert hat dann wollen wir nicht jede einzene suchen sondern er soll nur die ersetzen oder überschreiben die geändert wurden und jünger sind als die in der Quell datei.hier mal die idee

@echo off

if exist C:\Ziel\%1 goto FILE_TRUE

if not exist C:\Ziel\%1 goto FILE_FALSE

:FILE_TRUE
C: If dir C:\quelle\zeichnung.txt \t:w > C:\ziel\zeichnung.txt goto :ZIEL_NEUER else :QUELLE_NEUER

:ZIEL_NEUER
echo Die Datei Zeichnung.txt im Zielverzeichniss ist aktueller.
echo 1 Ersetzen?
echo 2 Abbrechen?
echo 3 ins Quellverzeichniss kopieren?
echo.

choice /C:123
if errorlevel 3 goto ZIEL_QUELLE
if errorlevel 2 goto abbrechen
if errorlevel 1 goto QUELLE_ZIEL

:QUELLE_NEUER
echo Die Datei zeichnung.txt im Quellverzeichniss ist aktueller.
echo 1 ins Zielverzeichniss kopieren?
echo 2 Abbrechen?
echo 3 Ersetzen?
echo.

choice /C:123
if errorlevel 3 goto QUELLE_ZIEL
if errorlevel 2 goto abbrechen
if errorlevel 1 goto ZIEL_QUELLE

:QUELLE_ZIEL
xcopy c:\QUELLE\zeichnung.txt c:\ZIEL
goto ende

:Abbrechen
goto ende

:ZIEL_QUELLE
xcopy c:\ZIEL\Zeichnung.txt c:\QUELLE\%1
goto ende



:FILE_FALSE
xcopy C:\quelle\%1 C:\ZIEL\%1
echo.

goto ende

:ende
pause
Bitte warten ..
Mitglied: bastla
11.08.2008 um 07:49 Uhr
Hallo EnricoS!

Vermutlich wäre für Deine Anwendung ein Synchronisierungstool mit grafischer Oberfläche besser geeignet, aber eine Lösung per Batch ist natürlich auch möglich.
Soll tatsächlich für jede einzelne Datei eine Entscheidung abgefragt werden?

Wenn ja, welche Entscheidung wird wahrscheinlich öfter getroffen - das Übernehmen der neueren Datei aus der Quelle (oder auch dem Ziel), oder das Zurückkopieren einer alten Version (vermutlich ersteres )?

Grüße
bastla
Bitte warten ..
Mitglied: EnricoS
11.08.2008 um 07:58 Uhr
Ja soll es jedesmal eigentlich.
ich denke mal schon das neuere in die Quelle .Aber das soll der nutzer dann entscheiden können.Mir fehlt im eigentlichen nur noch das mit dem vergleichen der beiden Ordner .
Wie könnte man das am besten machen und wäresehr froh über vorschläge von euch.

So ist es bis jetzt

@echo off

if exist C:\quelle\%1 goto FILE_TRUE

if not exist C:\quelle\%1 goto FILE_FALSE

:FILE_TRUE
C:\quelle\zeichnung.txt /tw > C:\ziel\zeichnung.txt goto :QUELLE_NEUER else :ZIEL_NEUER

:ZIEL_NEUER
echo Die Datei Zeichnung.txt im Zielverzeichniss ist aktueller.
echo 1 Ersetzen?
echo 2 Abbrechen?
echo 3 ins Quellverzeichniss kopieren?
echo.

choice /C:123
if errorlevel 3 goto ZIEL_QUELLE
if errorlevel 2 goto abbrechen
if errorlevel 1 goto QUELLE_ZIEL

:QUELLE_NEUER
echo Die Datei Zeichnung.txt im Quellverzeichniss ist aktueller.
echo 1 ins Zielverzeichniss kopieren?
echo 2 Abbrechen?
echo 3 Ersetzen?
echo.

choice /C:123
if errorlevel 3 goto QUELLE_ZIEL
if errorlevel 2 goto abbrechen
if errorlevel 1 goto ZIEL_QUELLE

:QUELLE_ZIEL
xcopy c:\QUELLE\zeichnung.txt c:\ZIEL
goto ende

:Abbrechen
goto ende

:ZIEL_QUELLE
xcopy c:\ZIEL\Zeichnung.txt c:\QUELLE\zeichnung.txt
goto ende



:FILE_FALSE
xcopy C:\quelle\zeichnung.txt C:\ZIEL\zeichnung.txt
echo.

goto ende

:ende
pause
Bitte warten ..
Mitglied: bastla
11.08.2008 um 07:59 Uhr
Hallo EnricoS!

Ein einfacher Ansatz (nur neuere oder noch nicht im Ziel vorhandene Dateien zum Kopieren anzubieten) sähe so aus:
01.
xcopy /e /d /f /p /y C:\Quelle C:\Ziel
Das ließe sich dann noch mit umgekehrter Quelle und Ziel wiederholen, sodass auch die im Ziel neueren Dateien angeboten würden.

Grüße
bastla
Bitte warten ..
Mitglied: EnricoS
11.08.2008 um 08:32 Uhr
würde es noch ne andere variante geben?So sollte es nicht sein den er soll fragen ob die datei ersetzt werden soll nicht den vielleicht ist die neue datei eine ausnahme und murde nur für den einen fall geändert und sonst braucht man immer die Quell datei.
Bitte warten ..
Mitglied: bastla
11.08.2008 um 08:42 Uhr
Hallo EnricoS!

Na gut, dann (ungetestet) etwa so:
01.
:Synchronisieren 
02.
::der Datei %1 
03.
set "Q=C:\Quelle\%~1" 
04.
set "Z=C:\Ziel\%~1" 
05.
if not exist "%Q%" goto :Ziel_kopieren 
06.
if not exist "%Z%" goto :Quelle_kopieren 
07.
 
08.
set QuellZeit= 
09.
set ZielZeit= 
10.
for /f "tokens=1-5 delims=.: " %a in ("C:\Quelle\%~t1") do set "QuellZeit=%c%b%a%d%e" 
11.
for /f "tokens=1-5 delims=.: " %a in ("C:\Ziel\%~t1") do set "ZielZeit=%c%b%a%d%e" 
12.
 
13.
if not defined QuellZeit goto :KeineQuellZeit 
14.
if not defined ZielZeit goto :KeineZielZeit 
15.
if %QuellZeit% gtr %ZielZeit% goto :QuelleNeuer 
16.
if %QuellZeit% lss %ZielZeit% goto :ZielNeuer 
17.
REM Beide Dateien haben das selbe Datum, daher keine Frage/Aktion erforderlich 
18.
goto :eof 
19.
 
20.
:KeineQuellZeit 
21.
echo Für %1 konnte keine Zeitangabe ermittelt werden! 
22.
goto :eof 
23.
 
24.
:Keine ZielZeit 
25.
echo Für %1 konnte keine Zeitangabe ermittelt werden! 
26.
goto :eof 
27.
 
28.
:QuelleNeuer 
29.
echo Die Datei %1 im Quellverzeichniss ist aktueller. 
30.
echo 1 ins Zielverzeichniss kopieren? 
31.
echo 2 Abbrechen? 
32.
echo 3 Ersetzen? 
33.
echo\ 
34.
set /p "Auswahl=Bitte 1, 2 so oder 3 eingeben: " 
35.
if "%Auswahl%"=="1" goto :Quelle_kopieren 
36.
if "%Auswahl%"=="3" goto :Ziel_kopieren 
37.
echo Unterschiedliche Versionen bleiben erhalten. 
38.
echo\ 
39.
goto :eof 
40.
 
41.
:ZielNeuer 
42.
echo Die Datei %1 im Zielverzeichniss ist aktueller. 
43.
echo 1 ins Quellverzeichniss kopieren? 
44.
echo 2 Abbrechen? 
45.
echo 3 Ersetzen? 
46.
echo\ 
47.
set /p "Auswahl=Bitte 1, 2 so oder 3 eingeben: " 
48.
if "%Auswahl%"=="1" goto :Ziel_kopieren 
49.
if "%Auswahl%"=="3" goto :Quelle_kopieren 
50.
echo Unterschiedliche Versionen bleiben erhalten. 
51.
echo\ 
52.
goto :eof 
53.
 
54.
:Quelle_kopieren 
55.
copy "%Q%" "%Z%">nul 
56.
goto :eof 
57.
 
58.
:Ziel_kopieren 
59.
copy "%Z%" "%Q%">nul 
60.
goto :eof
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Datum vergleichen
gelöst Frage von Klaus20Batch & Shell11 Kommentare

Hallo Zusammen, vielleicht kann mir jemand (wie schon öfters) mir bei einer Abfrage helfen. Ich möchte gerne falls das ...

Batch & Shell
In Html-Datei per Batchdatei das Datum und die Uhrzeit eintragen
gelöst Frage von HakiegoldBatch & Shell2 Kommentare

Ich habe ein kleines Problem. Ich importiere aus dem Internet per Batch alle 2 Minuten eine html-Datei mit Kursdaten. ...

Windows 7
Ordner vergleichen, bei gleichem Datum, Inhalt zusammenführen
Frage von ConcurveWindows 73 Kommentare

Guten Tag, ich würde bei einem "Problem" Hilfe benötigen. Leider bin ich was *.bat angeht ziemlich Ahnungslos und hoffe ...

Batch & Shell
Batchdatei Ordner nach Letztem Datum suchen und Dateien im Unterordner verschieben
gelöst Frage von noby.dickBatch & Shell13 Kommentare

Hallo, ich habe folgendes Situation: Ich habe mehrere Ordner die nach Datum benannt sind (z.B. 20161201, 20170329). Jahr.Monat.Tag In ...

Neue Wissensbeiträge
Microsoft

Update für AMD CPU (Spectre und Meltdown Lücke)

Information von sabines vor 1 SekundeMicrosoft

Wegen Probleme (BOSD nicht startende PCs) wurde das Update KB4056897 und KB4056894 für AMD CPUs zurückgezogen. Dieses Update scheint ...

Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 12 StundenMac OS X1 Kommentar

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 19 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 21 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1018 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...