Datei Liste von Ordner mit Änderungsdatum
Hallo,
also ich habe folgendes vor.
Ich habe mehrere Ordner mit unterOrdnern liegen aber alle z.B. unter c:\test\. und jetzt möchte ich aus den Ordner + unterOrdner eine Dateiliste haben wo man sieht wann Datei letzte Mal geändert wurde.
Als Beispiel:
benutzer.txt 23.06.2007 12:45
Setup.exe 01.01.2006 15:58
so in etwa!
Am besten wäre da ein Excel Makro das ich liste immer noch Mal bearbeiten kann. Oder gibt es da sogar Extra Programm für was das kann ?
MfG
MTB
also ich habe folgendes vor.
Ich habe mehrere Ordner mit unterOrdnern liegen aber alle z.B. unter c:\test\. und jetzt möchte ich aus den Ordner + unterOrdner eine Dateiliste haben wo man sieht wann Datei letzte Mal geändert wurde.
Als Beispiel:
benutzer.txt 23.06.2007 12:45
Setup.exe 01.01.2006 15:58
so in etwa!
Am besten wäre da ein Excel Makro das ich liste immer noch Mal bearbeiten kann. Oder gibt es da sogar Extra Programm für was das kann ?
MfG
MTB
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 71030
Url: https://administrator.de/contentid/71030
Ausgedruckt am: 18.11.2024 um 11:11 Uhr
10 Kommentare
Neuester Kommentar
Hallo MTB4ever!
Auf die Schnelle könntest Du dafür direkt an der Kommandozeile eingeben:
Damit wird der Dateiname samt Pfad (was ich bei Unterordnern sinnvoll finde) und Datum und Uhrzeit in die Datei C:\Liste.txt geschrieben. Diese kannst Du dann einfach in Excel importieren.
Falls Du tatsächlich nur den Dateinamen haben wolltest, würde die Zeile so lauten:
Grüße
bastla
[Edit] "/a-d" ergänzt, um Verzeichnisse auszuschließen [/Edit]
Auf die Schnelle könntest Du dafür direkt an der Kommandozeile eingeben:
for /f "delims=" %i in ('dir C:\test /s /b /a-d') do @echo %i;%~ti > C:\Liste.txt
Falls Du tatsächlich nur den Dateinamen haben wolltest, würde die Zeile so lauten:
for /f "delims=" %i in ('dir C:\test /s /b /a-d') do @echo %~nxi;%~ti > C:\Liste.txt
Grüße
bastla
[Edit] "/a-d" ergänzt, um Verzeichnisse auszuschließen [/Edit]
Moin MTB4ever,
du kannst diese Benutzerinteraktion auch in einen Batch einbauen - allerdings nicht ohne Hilfstools als Popupfenster.
Das Verzeichnisse-Ausschließen ist auch machbar...
...bei beiden Anforderungen wäre für mich die Frage, wie komfortabel das denn werden soll oder muss.
Ich würde diese Variante zwar wahrscheinlich auch weiterhin als eine CMD-Zeile direkt abfeuern, aber stelle es hier mal als formatierten Batch hin:
Gruß
Biber
[Edit] 22.10. Tippfehler (fehlendes abschliessendes Anführungszeichen) berichtigt.
Siehe Post von MTB4ever unten.
[/Edit]
du kannst diese Benutzerinteraktion auch in einen Batch einbauen - allerdings nicht ohne Hilfstools als Popupfenster.
Das Verzeichnisse-Ausschließen ist auch machbar...
...bei beiden Anforderungen wäre für mich die Frage, wie komfortabel das denn werden soll oder muss.
Ich würde diese Variante zwar wahrscheinlich auch weiterhin als eine CMD-Zeile direkt abfeuern, aber stelle es hier mal als formatierten Batch hin:
@echo off & setlocal
Set /P "StartDir=Bitte Startverzeichnis eingeben: "
Set /P "Log=Bitte LogDatei (ggf. mit Pfad): "
Set /P "exclude=Ausschliessen [Anfang des Ordnernamens]: "
If [%exclude%]== set "exclude=#####"
for /f "delims=" %%i in ('dir "%StartDir%" /s /b /a-d^|find /v /i "\%exclude%"') do @echo %%i;%%~ti >>%log%
Gruß
Biber
[Edit] 22.10. Tippfehler (fehlendes abschliessendes Anführungszeichen) berichtigt.
Siehe Post von MTB4ever unten.
[/Edit]
@Biber
Fällt VBS unter Hilfstool?
@mtv4ever
Eine Variante unter Verwendung von temporärem VBS könnte schematisch etwa so aussehen (wobei die Funktionsfähigkeit der Dateiauswahl vom verwendeten Betriebssystem [>= XP] abhängt):
Schön finde ich das allerdings nicht, und die noch fehlende "Exclude"-/"Include"-Maskeneingabe sollte konsequenter Weise auch per Popup erfolgen, sodass dann tatsächlich daran zu denken wäre, das Ganze durchgängig über VB(A/S) abzuwickeln ...
Trotzdem noch eine Anmerkung zur Dateiauswahl: Den gewünschten Dateinamen musst Du (falls nicht eine vorhandene Datei überschrieben werden soll) natürlich in das entsprechende Feld selbst eintragen.
Grüße
bastla
Fällt VBS unter Hilfstool?
@mtv4ever
Eine Variante unter Verwendung von temporärem VBS könnte schematisch etwa so aussehen (wobei die Funktionsfähigkeit der Dateiauswahl vom verwendeten Betriebssystem [>= XP] abhängt):
@echo off & setlocal
set "Verz=%temp%\VerzeichnisHolen.vbs"
echo Set V=CreateObject("Shell.Application").BrowseForFolder(0, "Verzeichnis wählen", 16, 17)>"%Verz%"
echo If Not TypeName(V)="Nothing" Then Set B=V.Self: WScript.Echo B.Path>>"%Verz%"
set Quelle=
for /f "delims=" %%i in ('cscript //nologo "%Verz%"') do set "Quelle=%%i"
if not defined Quelle goto :eof
set "Datei=%temp%\DateiHolen.vbs"
echo Set objDialog=CreateObject("UserAccounts.CommonDialog"):objDialog.Filter="Alle (*.*)": objDialog.InitialDir="C:\">"%Datei%"
echo objDialog.Flags=^&H800+^&H4+^&H8:intResult=objDialog.ShowOpen:WScript.Echo objDialog.FileName>>"%Datei%"
set Ziel=
for /f "delims=" %%i in ('cscript //nologo "%Datei%"') do set "Ziel=%%i"
if not defined Ziel goto :eof
for /f "delims=" %i in ('dir "%Quelle%" /s /b /a-d') do @echo %i;%~ti >>"%Ziel%"
del "%Verz%" & del "%Datei%"
Schön finde ich das allerdings nicht, und die noch fehlende "Exclude"-/"Include"-Maskeneingabe sollte konsequenter Weise auch per Popup erfolgen, sodass dann tatsächlich daran zu denken wäre, das Ganze durchgängig über VB(A/S) abzuwickeln ...
Trotzdem noch eine Anmerkung zur Dateiauswahl: Den gewünschten Dateinamen musst Du (falls nicht eine vorhandene Datei überschrieben werden soll) natürlich in das entsprechende Feld selbst eintragen.
Grüße
bastla
Moin bastla,
seh ich genauso wie Du.... das mag fliegen, aber sieht absolut hässlich aus.
Dann lieber, wenn denn wirklich diese Startordner/LogDateiname/Exclude-Geschichte als Parameter abgefragt werden muss, EIN VBx-Skriptchen aus einem Guss und viel Bunt und jedes Detail darf man/frau ändern.
Dann hast Du in zwei Jahren eine selbstgeschriebene "MBTBackup 4.0 Ultra"- Applikation, die im *.msi-Format auf Heft-DVDs mit beigelegt wird.
Oder du sagst: Hey, ich will doch nur jeden Freitagabend mal mein Zeugs sichern vor der Tagesschau - dann läuft es auf die drei oder vier schmucklosen Batchzeilen raus.
Aber dieses Nicht-Fisch-Nicht-Fleisch-Skript dort oben....gefällt mir auch nicht.
Grüße
Biber
seh ich genauso wie Du.... das mag fliegen, aber sieht absolut hässlich aus.
Dann lieber, wenn denn wirklich diese Startordner/LogDateiname/Exclude-Geschichte als Parameter abgefragt werden muss, EIN VBx-Skriptchen aus einem Guss und viel Bunt und jedes Detail darf man/frau ändern.
Dann hast Du in zwei Jahren eine selbstgeschriebene "MBTBackup 4.0 Ultra"- Applikation, die im *.msi-Format auf Heft-DVDs mit beigelegt wird.
Oder du sagst: Hey, ich will doch nur jeden Freitagabend mal mein Zeugs sichern vor der Tagesschau - dann läuft es auf die drei oder vier schmucklosen Batchzeilen raus.
Aber dieses Nicht-Fisch-Nicht-Fleisch-Skript dort oben....gefällt mir auch nicht.
Grüße
Biber
Moin MTB4ever,
okay, die Vorteile einer Handvoll Batch-Zeilen sind ja:
Die Anzahl der fehlerhaften Zeilen ist endlich. Und einzeln testbar.
Wird es denn besser, wenn Du nach %StartDir% in der FOR-Anweisung noch ein Anführungszeichen einfügst?
Da hab ich nämlich eins vergessen... *schäm*
Ich passe es oben in meinem Schnipsel an.
Sorry
Biber
okay, die Vorteile einer Handvoll Batch-Zeilen sind ja:
Die Anzahl der fehlerhaften Zeilen ist endlich. Und einzeln testbar.
Wird es denn besser, wenn Du nach %StartDir% in der FOR-Anweisung noch ein Anführungszeichen einfügst?
Da hab ich nämlich eins vergessen... *schäm*
Ich passe es oben in meinem Schnipsel an.
Sorry
Biber