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 - Ältestes Logfile Wegsichern

Frage Entwicklung Batch & Shell

Mitglied: northon

northon (Level 1) - Jetzt verbinden

05.08.2008, aktualisiert 06.08.2008, 4166 Aufrufe, 10 Kommentare

Guten Tag allerseits!

Ich habe folgende Problemstellung:

NTBackup legt immer die Logfiles der letzten 10 Tage ab und löscht alle älteren. Nun möchte ich mir per Patch immer den ältesten wegkopieren, bevor er gelöscht wird.

Mein Problem ist, dass ich nur sehr beschränktes Wissen ob des Batch habe und nun mehr oder weniger oer radnom rumprobiere und zu keinem Ergebnis komme.

@echo off
FOR /F "tokens=1,2,3,4,5 delims=/. " %%a in ('date/T') do set CDATE=%%a%%b%%c%%d
cd C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Anwendungsdaten\Microsoft\WindowsNT\NTBackup\data
Echo D | xcopy test.txt LogFiles_alt\Sicherung%CDATE%.txt
for %%f in ("C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Anwendungsdaten\Microsoft\WindowsNT\NTBackup\data*.txt") do echo %%~tf

Ich kann mir eine hardgecodete test.txt jeden tag wegsichern und die for-Schleife darunter teilt mir die Änderungsdaten der Dateien mit.
Ich komme jedoch nicht dahinter, wie ich dem Batch nun sagen soll er solle die älteste .txt File wegsichern.

Es wäre mir eine Freude wenn mir jmd helfen könnte,

Vielen Dank im Vorraus,
mit freundlichen Grüßen

Northon
Mitglied: bastla
05.08.2008 um 13:32 Uhr
Hallo Northon!

Ungetestet etwa so:
01.
@echo off & setlocal 
02.
FOR /F "tokens=1,2,3,4,5 delims=/. " %%a in ('date/T') do set CDATE=%%a%%b%%c%%d 
03.
cd /d "C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Anwendungsdaten\Microsoft\WindowsNT\NTBackup\data" 
04.
for /f "delims=" %%i in ('dir *.txt /b /a-d /o-d') do set "Oldest=%%i" 
05.
copy "%Oldest%" LogFiles_alt\Sicherung%CDATE%.txt
Grüße
bastla

[Edit] Pfad angepasst [/Edit]
Bitte warten ..
Mitglied: northon
05.08.2008 um 14:12 Uhr
Danke für deine schnelle Antwort!

um es auf meinem Desktop testen zu können, habe ich einen LogFiles_alt Ordner und ein paar .txt Dateien erstellt und gestartet, doch bekomme ich dann einen Syntax-Error zurück.

Hier der Code:

@echo off & setlocal
FOR /F "tokens=1,2,3,4,5 delims=/. " %%a in ('date/T') do set CDATE=%%a%%b%%c%%d
cd /d "C:\Dokumente und Einstellungen\akerber\Desktop"
for /f "delims=" %%i in ('dir *.txt /b /a-d /o-d') do set "Oldest=%%i"
copy "%Oldest%" LogFiles_alt\Sicherung%CDATE%.txt

Mit freundlichen Grüßen
Northon
Bitte warten ..
Mitglied: bastla
05.08.2008 um 14:22 Uhr
Hallo Northon!

bekomme ich dann einen Syntax-Error zurück.
Kann ich nicht nachvollziehen.

Ersetze bitte (zum Testen) "echo off" durch "echo on" und starte von der Kommandozeile oder füge als letzte Zeile noch "pause" hinzu - dann kannst Du Dir den Ablauf genau ansehen.

Grüße
bastla

P.S.: Das Datum würde ich eher mit "%%c%%b%%a" festlegen (zumindest unter XP/2003/Vista).

P.P.S.: Ein Batch ist leichter lesbar, wenn er beim Posten unter < code>/< /code>-Tags (ohne Leerzeichen ) gesetzt wird.
Bitte warten ..
Mitglied: northon
05.08.2008 um 14:37 Uhr
Hallo Bastla!

Danke für dienen <code>-Tipp Werds in Zukunft verwenden. Hab den von dir beschriebenen Test durchgeführt und häng dir nen Screenshot an:

http://img228.imageshack.us/img228/8684/batchya2.png

Danke für deine Hilfe!

Mit freundlichen Grüßen
Northon
Bitte warten ..
Mitglied: bastla
05.08.2008 um 14:46 Uhr
Hallo Northon!

häng dir nen Screenshot an.
Geht auch einfacher: Nach einem Klick auf das Systemmenüfeld (linke obere Ecke) des CMD-Fensters kannst Du in den Eigenschaften den"QuickEdit-Modus" (am besten gleich für alle Fenster) einschalten und danach mit der Maus Text markieren und per rechter Maustaste kopieren (bzw, wenn nichts markiert ist, einfügen).
Das Problem ist das Leerzeichen hinter dem Datum (und vor ".txt") - lässt sich durch Setzen von Anführungszeichen vermeiden:
01.
FOR /F "tokens=1,2,3,4,5 delims=/. " %%a in ('date/T') do set "CDATE=%%a%%b%%c%%d"
Grüße
bastla
Bitte warten ..
Mitglied: northon
05.08.2008 um 15:03 Uhr
Hehe danke für den Quick Edit-Modus. Es freut mich, dass es immer noch Leute gibt, die sich nicht nur die Mühe machen ein Problem zu lösen, sondern auch noch hilfreiche Infos Rund um das Thema geben. Ein Dank und großes Lob an dich von meiner Seite

Habe nun die Anführungszeichen gesetzt, nur nehm ich damit anscheinend einen wichtigen Parameter aus dem Spiel genommen, denn nun kopiert er mir immer die neueste Datei anstatt der ältesten

Es ist sicher ein dummer Fehler, aber bitte kläre mich noch darüber auf.

Nach der ganzen Geschichte ist einmal dringend ein ausführliches Batch Tutorial nötig....wenn man doch nur einmal Zeit dafür hätte.

Mit freundlichen Grüßen
Northon

01.
@echo on & setlocal 
02.
FOR /F "tokens=1,2,3,4,5 delims=/. " %%a in ('date/T') do set "CDATE=%%a%%b%%c%%d"  
03.
cd /d "C:\Dokumente und Einstellungen\akerber\Desktop"  
04.
for /f "delims=" %%i in ('"dir *.txt" /b /a-d /o-d') do set "Oldest=%%i"  
05.
copy "%Oldest%" LogFiles_alt\Sicherung%CDATE%.txt
[EDIT]Der Effekt ist der gleiche wenn ich die Anführungszeichen beim "dir *.txt" ganz wegnehme.[/EDIT]
Bitte warten ..
Mitglied: bastla
05.08.2008 um 15:15 Uhr
Hallo Northon!

Das Setzen der Anführungszeichen bezog sich nur auf die gepostete Zeile für das Erstellen der Datumsvariable %CDATE% (da diese ohne Anführungszeichen am Ende ein Leerzeichen enthält) - daher die Anführungszeichen um das "dir" entfernen (oder zumindest nur um "*.txt" setzen).

Grüße
bastla
Bitte warten ..
Mitglied: northon
05.08.2008 um 15:50 Uhr
Wie oben beschrieben: wenn ich die Anführungszeichen beim .txt weglasse, ändert es nichts daran, dass die neueste und nicht die älteste Datei kopiert wird.

Ich habe dir nochmals den "log" kopiert:

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

Z:\>c:\copy.bat

Z:\>FOR /F "tokens=1,2,3,4,5 delims=/. " %a in ('date/T') do set "CDATE=%a%b%c%d
"

Z:\>set "CDATE=05082008"

Z:\>cd /d "C:\Dokumente und Einstellungen\akerber\Desktop"

C:\Dokumente und Einstellungen\akerber\Desktop>for /F "delims=" %i in ('dir *.tx
t /b /a-d /o-d') do set "Oldest=%i"

C:\Dokumente und Einstellungen\akerber\Desktop>set "Oldest=zweiter.txt"

C:\Dokumente und Einstellungen\akerber\Desktop>set "Oldest=erster.txt"

C:\Dokumente und Einstellungen\akerber\Desktop>copy "erster.txt" LogFiles_alt\Si
cherung05082008.txt
1 Datei(en) kopiert.

die datei erster.txt wurde zuerst und die datei zweiter.txt als zweite erstellt mit einem Abstand>1min.

Geht das Batchfile vielleicht nur auf tageslange Abstände?

Mfg Northon
Bitte warten ..
Mitglied: bastla
05.08.2008 um 18:02 Uhr
Hallo Northon!

die datei erster.txt wurde zuerst und die datei zweiter.txt als zweite erstellt mit einem Abstand>1min.
... dann wäre "erster.txt" die älteste Datei und sollte kopiert werden, was ...
C:\Dokumente und Einstellungen\akerber\Desktop>copy "erster.txt" LogFiles_alt\Si
cherung05082008.txt
1 Datei(en) kopiert.
... auch zu klappen scheint ...

Nur als Ergänzung: Zugrundegelegt wird nicht das Erstellungsdatum, sondern das Datum der letzten Änderung, und eine Kontrolle mit
01.
dir /o-d "C:\Dokumente und Einstellungen\akerber\Desktop\*.txt"
sollte zeigen, dass die Datei mit dem frühesten Änderungsdatum als letzte aufgelistet (und daher im Batch verwendet) wird. Verantwortlich für diese Reihenfolge ist das "-" in "/o-d" - mehr dazu mit "dir /?".

Grüße
bastla
Bitte warten ..
Mitglied: northon
06.08.2008 um 08:36 Uhr
Siehst du, da sieht man vor lauter passierten Fehler nicht einmal mehr wenns funktioniert...langsam werd ich Paranoid

Vielen Dank für eine ausführliche und gute Hilfe! Ich geh jetzt ein Batch Tutorial lesen...

Mit freundlichen Grüßen
Northon
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Batch zum bearbeiten mehrerer CSV (3)

Frage von Matzus87 zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

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

Frage von Xaero1982 zum Thema Microsoft ...

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

Frage von Floh21 zum Thema Outlook & Mail ...

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

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

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