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

Dateiänderung seit letzten Aufruf auflisten

Frage Development Batch & Shell

Mitglied: 106245

106245 (Level 1)

2012/04/12 um 15:33 Uhr, 2795 Aufrufe, 8 Kommentare

Hallo liebe Community,

ich möchte gerne eine Batch-Datei schreiben. Sie soll bei Aufruf aus einer anderen Datei das letzte Aktualisierungsdatum finden, danach in einem Verzeichnis alle Dateien finden, die neuer als das Datum sind und ihren Pfad in einer neuen Datei schreiben.

Bisher habe ich das zusammengebastelt:

adata.txt = Alle Dateien mit Unterverzeichnis
dit.txt = Ausgabedatei mit den neuen Dateien (Pfad)
ae.txt = Datei mit dem Änderungsdatum

rem 1. Liste Verzeichnis auf...
del adata.txt
dir /s /b /o-d /tw >> adata.txt

rem 2. Schreibe alle Dateien mit neueren Änderungsdatum in eine Datei...
del dir.txt
for /f "delims=" %%i in (adata.txt) do ??? >> dir.txt

rem 3. Setze auf aktuelles Datum
rem ???
pause

Und dort, wo ??? steht, wüsste ich nicht weiter... könnt ihr mir helfen? Oder geht das überhaupt so, wie ich das oben versuche?
Mitglied: mathe172
2012/04/12 um 16:34 Uhr
Hallo,

auf was genau soll geachtet werden? Nur Datum? Auch Zeit? Neuer oder auch gleich alt?
Als einen ersten Ansatz vielleicht mal folgendes:
01.
REM Datum im Format JJJJMMTT 
02.
set "Vergleich=20120123" 
03.
for /f "tokens=1-6* delims=.: " %%A in ('dir /a-d') do ( 
04.
if "%%C%%B%%A" GTR "%Vergleich%" echo.%%G 
05.
06.
pause
(ungetestet)

MfG,
Mathe172
P.S.:Bitte Code-Formatierung benutzen!
Bitte warten ..
Mitglied: 106009
2012/04/12 um 17:32 Uhr
Hi,

Zitat von 106245:
ich möchte gerne eine Batch-Datei schreiben. Sie soll bei Aufruf aus einer anderen Datei das letzte Aktualisierungsdatum
finden,

Alles noch nie dagewesen, nach Verarbeiten von Dateien nach Datum hat hier noch nie jemand gefragt......

Vorschlag: An deiner Stelle würde ich mal die Suchfunktion des Forums nutzen, dann würdest du feststellen, dass dieses Thema in ähnlicher Form fast jede Woche umassend bearbeitet ´wird.
.
Gruß
.
Bitte warten ..
Mitglied: 106245
2012/04/12 um 19:19 Uhr
Hi,

Zitat von 106009:
Verarbeiten von Dateien nach Datum hat hier noch nie jemand gefragt......

Vorschlag: An deiner Stelle würde ich mal die Suchfunktion des Forums nutzen, dan würdest du feststellen, dass dieses
Thema in ähnlicher Form fast jede Woche umassend bearbeitet ´wird.

Dann gib mal "Verarbeiten von Dateien nach Datum" in die Suchfunktion ein
Raus kommen 11 Fragen, wovon mir keine Antwort hilft...
Ich habe auch schon mit anderen Suchbegriffen hier gesucht und auch mit Google gesucht. Und da ich keine befriedigende Antwort gefunden hatte, habe ich hier geschrieben. Wenn dieses Thema immer wieder bearbeitet wird, dann hättest du mir auch gleich die Links zu den Threads schreiben können...


@mathe172: Notfalls nur mit Datum, aber beides überprüfen wäre am Besten. Gleich alt würde nicht dazugehören. Sonst zählt sich die ae.txt mit rein.
Zu dem Code: Also das hatte ich auch als erstes gedacht, aber mein Problem ist, die vollständige Ansicht des Befehls "dir" wäre bei mir ungefähr so:

01.
Datentr„ger in Laufwerk E: ist Volume 
02.
 Volumeseriennummer: 400C-C7B6 
03.
 
04.
 Verzeichnis von E:\Ordner 
05.
 
06.
12.04.2012  18:58    <DIR>          . 
07.
12.04.2012  18:58    <DIR>          .. 
08.
12.04.2012  18:44               342 act.bat 
09.
12.04.2012  18:44             2.166 adata.txt 
10.
12.04.2012  14:27             3.900 changelog.htm 
11.
12.04.2012  18:58                14 dir.bat 
12.
12.04.2012  18:45                 0 dir.txt 
13.
... 
14.
              10 Datei(en)         15.012 Bytes 
15.
               4 Verzeichnis(se), 12.542.431.232 Bytes frei
Damit fallen also ungültige Zeilen an... Wenn ich es ungeändert durchlaufen lasse, habe ich dann das:

01.
 (leere Zeile) 
02.
act.bat  
03.
166 adata.txt  
04.
900 changelog.htm  
05.
dir.txt  
06.
...
Kann man nicht das Datum einer einzelnen Datei überprüfen? Ohne diese nervigen Zeilen, sondern nur die relevanten Daten?

Und zu 3. habe ich die Lösung (durch suchen
) gefunden:
echo %DATE% %TIME% >> ae.txt
Bitte warten ..
Mitglied: 106009
2012/04/12 um 19:53 Uhr
Dann gib mal "Verarbeiten von Dateien nach Datum" in die Suchfunktion ein^^
Raus kommen 11 Fragen, wovon mir keine Antwort hilft...
Was kann ich denn dafür, dass du offenbar nicht in der Lage bist, eine Suchanfrage vernüftig abzusetzen?
Wenn ich in der erweiterten Suche "Datum" eingebe und alle Bereiche durchsuchen lasse, bekomme ich über 2000 Treffer, und wenn ich das nur im passenden Berech suchen lasse, ~560 passende Fragen, 13 Anleitungen, 8 Tipps und über 660 Kommentare. Und da ist nichts Passendes für dich dabeì?

Tut mir leid, aber wenn ich solchen Antworten bekomme, sinkt meine Bereitschaft zur Hilfe auf 0. Mir ist meine Zeit zu schade, Leute, die nicht bereit sind, sich selbst Mühe zu geben, nur zu bedienen, zumal das Thema hier im Forum schon bis zum Erbrechen durchgekaut wurde.
.
Bitte warten ..
Mitglied: mathe172
2012/04/12 um 20:19 Uhr
Hallo,

um die ersten Zeilen zu überspringen(sorry, hab ich in meinem Code vergessen) geht mit "skip=5" in den Parameter von For
Und die Zeit lässt sich mit einem zweiten if vergleichen
Also:
01.
REM Datum im Format JJJJMMTT 
02.
set "VergleichDatum=20120123" 
03.
REM Format HHMM 
04.
set "VergleichZeit=0923" 
05.
for /f "skip=6 tokens=1-6* delims=.: " %%A in ('dir /a-d') do ( 
06.
if "%%C%%B%%A" GTR "%VergleichDatum%" if "%%E%%D" GTR "%VergleichZeit%" echo.%%G 
07.
08.
pause
MfG,
Mathe172
Bitte warten ..
Mitglied: 106245
2012/04/13 um 12:38 Uhr
Hi,

@106009: Wenn deine Hilfsbereitschaft schon auf null ist und dir die Zeit zu schade ist, warum hast du schon 2 Posts gemacht, die nicht zur Lösung meines Problems beitragen? Und wie willst du genau wissen, ob ich mir keine Mühe gebe?

@mathe172
Danke, ich habe das jetzt so:

01.
@echo on 
02.
 
03.
@echo Liste alle Dateien auf (relativer Pfad)... 
04.
if EXIST adata.txt del adata.txt 
05.
for /f "tokens=6* delims=\" %%i in ('dir /s /b /o-d /tw') do @echo \%%j>> adata.txt 
06.
 
07.
@echo Überprüfe alle Dateien nach Datum... 
08.
set VergleichDatum =< date.txt 
09.
set VergleichZeit =< time.txt 
10.
for /f "skip=6 tokens=1-6* delims=.: " %%A in ('dir /a-d /-c') do (  
11.
if "%%C%%B%%A" GTR "%VergleichDatum%" if "%%E%%D" GTR "%VergleichZeit%" echo.%%G >> ae_temp.txt 
12.
13.
 
14.
@echo Füge relativen Pfad hinzu... 
15.
if EXIST ae.txt del ae.txt 
16.
for /f "delims=" %%S in (ae_temp.txt) do findstr %%S adata.txt >> ae.txt 
17.
 
18.
@echo Aktualisiere Zeit... 
19.
set CURRENTTIME=%TIME:~0,2%%TIME:~3,2% 
20.
@echo %CURRENTTIME% > time.txt 
21.
set ARCHIVNAME=%DATE:~6,6%%DATE:~3,2%%DATE:~0,2% 
22.
@echo %ARCHIVNAME% > date.txt 
23.
 
24.
pause
Jetzt habe ich da nur noch eine Frage...
Ich habe jetzt noch Unterverzeichnisse, von denen ich auch gerne noch die Aktualität überprüfen möchte. Dazu hatte ich mir jetzt gedacht, ich modifiziere die For-Schleife indem ich ein /s zu dem dir hinzufüge, in einer weiteren for-Schleife dann die leeren Zeilen entferne und mir danach die gesamte Zeile aus der Auflistungs-Datei hole. Das wäre bei mir so:
01.
... 
02.
for /f "skip=6 tokens=1-6* delims=.: " %%A in ('dir /a-d /-c') do (  
03.
if "%%C%%B%%A" GTR "%VergleichDatum%" if "%%E%%D" GTR "%VergleichZeit%" echo.%%G >> ae_mit_leerzeichen.txt 
04.
05.
 
06.
for /F %%S in (ae_mit_leerzeichen.txt) do ( 
07.
 echo %%S >> ae_ohne_pfad.txt 
08.
09.
 
10.
if EXIST ae.txt del ae.txt 
11.
for /f "delims=" %%S in (ae_ohne_pfad.txt) do findstr %%S adata.txt >> ae.txt 
12.
 
13.
del ae_ohne_pfad.txt 
14.
del ae_mit_leerzeichen.txt
Dummerweise gibt das jetzt sämtliche Einträge aus. Meine Fehlersuche brachte eventuell das:
01.
set /p VergleichDatum =< date.txt 
02.
@echo "%VergleichDatum%"
Ausgabe ist: "" und nicht das eingegebene Datum. Ich habe es auch mit set VergleichDatum = "20120412" ausprobiert und die Ausgabe ist immer noch "".
Liegt es vielleicht daran? Warum gibt es die Variable nicht richtig aus?
Bitte warten ..
Mitglied: 106009
2012/04/13 um 14:13 Uhr
Zitat von 106245:
@106009: Wenn deine Hilfsbereitschaft schon auf null ist und dir die Zeit zu schade ist, warum hast du schon 2 Posts gemacht,
die nicht zur Lösung meines Problems beitragen? Und wie willst du genau wissen, ob ich mir keine Mühe gebe?

Du bist selbst zu dämlich zu erkennen, dass auch in meinen Antworten Informationen enthalten waren, die dir sehr wohl bei der Lösung deines "Problems" hätten helfen können.
Was soll's: Der geistige Horizont ist eben bei einigen Leuten der Abstand zwischen Kopf und Brett.

EOD
Bitte warten ..
Mitglied: 106245
2012/04/13 um 14:29 Uhr
Mir reichts. Ich hole mir die Antwort von einem anderen Forum.
Bitte warten ..
Ähnliche Inhalte
Windows User Management
Erste Anmeldung und letzte Abmeldung pro Tag auflisten
Frage von CodehunterWindows User Management4 Kommentare

Hallo Experts! Ist es per SQL-Abfrage möglich, über einen Zeitraum X alle Ereignisse aus dem Eventlog zu ziehen, die ...

Microsoft
Dateiänderungen auf Netzwerkpfaden nicht für alle sichtbar
Frage von NochEinNoobMicrosoft4 Kommentare

Hallo zusammen, seit ca. Ende Oktober taucht bei uns immer wieder ein Problem auf: Benutzer A öffnet beispielsweise eine ...

Visual Studio
VB.NET Dateiänderung verhindern
Frage von duschgasVisual Studio2 Kommentare

Hallo, kann mir jemand auf die Sprünge helfen und mir einen Tipp geben ? :). Gibt es eine Möglichkeit ...

Windows Server
Auflisten welche Ressource von welcher Gruppe verwaltet wird
Frage von sk-it83Windows Server

Hallo Community, ich habe folgende Herausforderung: Wir haben in unserer AD auf Server 2008 R2 gefühlte 1000 Ressourcen und ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 6 StundenInternet2 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 10 StundenDSL, VDSL1 Kommentar

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

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 10 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 13 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server15 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...