kugman
Goto Top

dynamische Directory-Ausgabe mit Änderungsdatum

ich möchte einen "dir"-Befehl absetzen und als Ausgabe nur die Objekte haben, die am Vortag geändert wurden.

Hallo zusammen,

so ziemlich jede Frage konnte mir hier bislang nur durch Lesen beantwortet werden! Vielen Dank dafür schonma!

so - genug geschleimtface-wink

ich brauch für ein Skript eine in eine Textdatei umgeleitete Dir-Ausgabe, die mir aber nur die Objekte liefert, die eben das Änderungsdatum vom Vortag haben. Also nur alle Dateien, die gestern oder heute im Schreibzugriff waren.

mit dir /TW bekomme ich das Änderungsdatum angezeigt, ich habe es aber nicht hinbekommen, hierüber eine Abfrage zu machen.

Vielleich kann mir hier ja jemand weiterhelfen...


liebe Grüße und vielen Dank

Markus

Content-ID: 30262

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

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

Biber
Biber 12.04.2006 um 13:23:17 Uhr
Goto Top
Moin kugman,

sowas geht nicht über den normalen DIR-Befehl. Das wird aufwändiger.
Bezogen auf die obere Fragestellung:
ich brauch für ein Skript eine in eine Textdatei umgeleitete Dir-Ausgabe,
die mir aber nur die Objekte liefert, die eben das Änderungsdatum vom Vortag haben.
... ich wiederhole: nur die vom Vortag.
Also nur alle Dateien, die gestern oder heute im Schreibzugriff waren.
.. ich wiederhole: alle von gestern oder heute *kopfkratz*

Probier es so:
::---Snipp DirSinceYesterday.bat ...
:: Param1== Verzeichnis/Filemask Param2==Outputdatei
@Echo off & setlocal & set "out=%2"  
If [%2]== set "out=CON"  
echo wscript.echo dateAdd("d",-1, date())>%temp%\gestern.vbs  
For /f %%i in ('cscript //nologo %temp%\gestern.vbs') do set yesterdate=%%i  
del %temp%\gestern.vbs
:: Wenn wirklich nur die Dateien vom Vortag: das erste "DIR" auskommentieren   
dir /O:-d /A:-d %1 |find "%date%">%out%  
:: Wenn wirklich nur die Dateien vom Vortag: statt ">>" ein ">" (Log neu anlegen)  
dir /O:-d /A:-d %1 |find "%yesterdate%">>%out%  
::---Snapp DirSinceYesterday.bat ...

Test am CMD-Prompt:
(=13:17:50  F:\=)
>DirSinceYesterday.bat d:\temp
12.04.2006  13:17                 4 vonheute.txt
11.04.2006  19:33                 4 vongestern.txt

Hope That Helps
Biber
kugman
kugman 12.04.2006 um 14:53:47 Uhr
Goto Top
Vielen Dank schhonmal für Deine Hilfe,
sieht auch schonmal ganz gut aus, eine Frage hab ich aber noch: wie definiere ich die Parameter Param1 und Param2

ergänzung: ich meine natürlich die feste Vergabe von einem Bestimmten Pfad und einer Ausgabedatei.

Add2: funktioniert das ganze auch rekursiv?

noch ein edit: Das Skript soll nur die Verzeichnisnamen der Dateien, die sich geändert haben ausgeben. und zwar rekursiv
Biber
Biber 12.04.2006 um 15:06:01 Uhr
Goto Top
Moin kugman,

"definieren" brauchst Du die gar nicht.
Bsp a)
DirSinceYesterday.bat
->kein Parameter, aktuelles Verzeichnis wird ausgewertet, Ausgabe auf Bildschirm

Bsp. b)
DirSinceYesterday.bat d:\temp
-> ein Parameter==Param1 übergeben; Verzeichnis d:\temp wird ausgewertet; Ausgabe auf Bildschirm

Bsp. c)
DirSinceYesterday.bat d:\temp c:\logs\logdate34.txt
-> zwei Parameter; Verzeichnis d:\temp wird ausgewertet; Ausgabe in neue Datei c:\logs\logdate34.txt

Gruß
Biber
Biber
Biber 13.04.2006 um 10:35:36 Uhr
Goto Top
Moin kugman,

ergänzung: ich meine natürlich die feste Vergabe von einem Bestimmten Pfad und einer Ausgabedatei.
Nicht verstanden - bitte umformulieren.

Add2: funktioniert das ganze auch rekursiv?
Nein. Ich kann zwar den "normalen" DIR-Befehl (den mit Ausgabe von Datum, Zeit, Größe, Dateiname) über alle Unterverzeichnisse machen lassen mit "/S", aber dann habe ich in der Outputzeile ja keine Information über den Verzeichnispfad.

Dann musst du in den beiden "DIR... |find .."-Zeilen die DIR-Anweisung jeweils mit einer

FOR /F ..IN .('dir /b /s...') DO...
-Anweisung ersetzen und nach dem DO das Datum mit "%~t" ermitteln.
Siehe in der Hilfe zum FOR-Befehl. Oder die Beispiele hier im Forum.

noch ein edit: Das Skript soll nur die Verzeichnisnamen der Dateien,
die sich geändert haben ausgeben. und zwar rekursiv
Na ja, wenn das Sinn macht...
Poste doch einfach mal das Skript.. dann lässt sich vielleicht besser erkennen wo und welche "von-Gestern" oder ""seit-Gestern"-Ermittlung nötig ist.

Gruß Biber
Biber
Biber 22.04.2006 um 03:22:39 Uhr
Goto Top
Moin kugman,
Nachfrage: Ist der Beitrag noch offen? Gelöst? Erledigt?

Ist nicht ganz klar erkennbar..

Grüße
Biber
kugman
kugman 22.04.2006 um 12:12:52 Uhr
Goto Top
Hallöchen,

Das Ding ist noch offen, ich komm aber grad nicht dazu.

Gruß, kugman