haiopai
Goto Top

Neue und veränderte Dateien ausgeben über eine Batch Datei

Hallo zusammen


Ich stehe hier vor folgendem kleinen Problem:
Ich muss auf einer HDD (z.B. Laufwerk d:\ )alle verändertern und neuen Dateien in einer Log-Datei erfassen. (Soll über eine Batch Datei erfolgen)
Da ich mich nur begrenzt im scripting auskenne, gestaltet sich dieses als schwierig.

Könnte mir da mal jemand auf die Sprünge helfen `?

Danke schon mal vorab.

Gruss Marc

Content-Key: 106912

Url: https://administrator.de/contentid/106912

Printed on: April 19, 2024 at 23:04 o'clock

Member: NetWolf
NetWolf Jan 23, 2009 at 09:25:40 (UTC)
Goto Top
Hallo Marc,

keine Ahnung wie begrenzt deine BATCH-Kenntnisse sind, aber hier steht eigentlich alles was du benötigst drin:

http://www.i8086.de/dos-befehle/dir.html

Nutze einfach die Parameter des DIR -Befehls, so wie du sie benötigst.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)
Member: Haiopai
Haiopai Jan 23, 2009 at 10:55:14 (UTC)
Goto Top
Hallo Wolfgang

In Bezug auf den dir befehl habe ich doch maximal die Möglichkeit dir /TW anzugeben und damit bekomme ich das Datum der letzten änderung, oder ich kann sortieren, damit komme ich meiner Lösung aber nicht nahe.
Ich brauche im Log nur die Dateien die sich verändert haben und die neuen. Mit fc finde ich aber auch keinen parameter der dieses bewerkstelligt.

Grüsse Marc
Member: bastla
bastla Jan 23, 2009 at 11:32:31 (UTC)
Goto Top
Hallo Haiopai und willkommen im Forum!

Du könntest den "xcopy"-Befehl dafür "missbrauchen":
xcopy /Y /S /D:M-T-J /L /I Quelle (imaginäres)Ziel>>Logdatei
wobei mit "M-T-J" die Angabe des Datums, ab welchem Dateien als "neu" gelten, erfolgt. Da nicht wirklich kopiert wird, ist das angegebene Ziel eigentlich egal.

Grüße
bastla
Member: Haiopai
Haiopai Jan 23, 2009 at 11:39:47 (UTC)
Goto Top
Hallo Bastla

Vielen dank schon mal für den Tip
Hierbei müsste man aber täglich den Wert des Datums ändern.
Gibt es hier evtl ein Möglichkeit das anzupassen ?
Die Routine soll jeden Tag angestossen werden (Batchdatei) um die aktuelle Differenz ( geänderte Dateien/ und neu Dateien) zum Vortag Vortag in einen Textdokument bzw. Logdatei anzuzeigen.

Gruss Marc
Member: NetWolf
NetWolf Jan 23, 2009 at 12:35:58 (UTC)
Goto Top
Hallo Marc,

ich dachte eher an das "Archiv" Attribut.
Nachts das Attribut aller Dateien zurücksetzen!

Vorher die Liste erstellen, da idR. das Attribut gesetzt wird, wenn eine neue oder geänderte Datei da ist.


Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)
Member: Haiopai
Haiopai Jan 23, 2009 at 14:54:24 (UTC)
Goto Top
Hallo zusammen

Habe dann den Befehl von dir (Bastla) verwendet und noch um 2 variablen erweitert, damit ich ohne anhängen schreiben kann.

Thx a lot

Gruss Marc
Member: bastla
bastla Jan 23, 2009 at 15:10:24 (UTC)
Goto Top
Hallo Haiopai!

Für eine variable Datumsangabe (Stichwort "gestern") könntest Du noch folgenden Batchteil einbauen:
@echo off & setlocal
set TDiff=-1
set gTemp=%Temp%\Gestern.vbs
>%gTemp% echo g=DateAdd("d",%TDiff%,Date):WScript.Echo Mid(g,4,2)^&"-"^&Left(g,2)^&"-"^&Right(g,4)  
for /f %%i in ('cscript //nologo %gTemp%') do set "G=%%i"  
echo %G%
Durch Änderung der Wertzuweisung zu %TDiff% in Zeile 2 kannst Du auch andere Zeitdifferenzen (in Tagen) vorgeben.

Grüße
bastla