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 geschleimt
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
Hallo zusammen,
so ziemlich jede Frage konnte mir hier bislang nur durch Lesen beantwortet werden! Vielen Dank dafür schonma!
so - genug geschleimt
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 30262
Url: https://administrator.de/contentid/30262
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
6 Kommentare
Neuester Kommentar
Moin kugman,
sowas geht nicht über den normalen DIR-Befehl. Das wird aufwändiger.
Bezogen auf die obere Fragestellung:
Probier es so:
Test am CMD-Prompt:
Hope That Helps
Biber
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.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.
.. 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
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
"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
Moin kugman,
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.
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
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...die sich geändert haben ausgeben. und zwar rekursiv
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