Erstellungsdatum mit Pfad auslesen

Mitglied: manni04

manni04 (Level 1) - Jetzt verbinden

01.10.2011, aktualisiert 18.10.2012, 3541 Aufrufe, 27 Kommentare

Hallo an alle,

ich versuche gerade eine Dateiliste zu erstellen die mir das Erstellungsdatum und Uhrzeit, die Dateigröße und den Pfad ausliest. Ich habe es auch schon soweit gebracht das ich das Datum mit Uhrzeit, die Dateigröße und den Dateinamen erhalte, allerdings bräuchte ich auch noch den Pfad der Datei. Ich hatte bereits eine ähnliche Methode, allerdings habe ich dort nur das Änderungsdatum erhalten:
Hier konnte ich am Ende sehr einfach angeben, welche Werte und in welcher Reihenvolge ich die ausgabe haben wollte. Außerdem war es Möglich zwischen den Parametern Trennzeichen einzufügen, das sollte auch gehen. (Hier habe ich das Trennzeichen "§" verwendet)
(die Funktion /Tc im DIR Befehl funktioniert hir anscheinend nicht)

Meine momentane Lösung sieht so aus:
Bei meiner jetztigen Funktion kann ich diese Parameter nicht verwenden, kenn mich dazu mit Batch leider zu wenig aus, um es selber zu schaffen. Es wäre außerdem sehr schön wenn ich auch gleich die Dateierweiterung schreiben könnte, ist aber nicht umbeding nötig.

Vielleicht kann mir ja auch einfach jemand eine Liste sagen, in der ich die Parameter für diese Funktion finde, ähnlich wie in der FOR-Hilfe ganz am Ende die Auflistung der Möglichkeiten.

Am Ende sollte es dann in etwa so aussehen:
01.10.2011 22:11 123456 Pfad Datei_mit_Dateierweiterung .txt
01.10.2011 22:12 123456 Pfad Datei2_mit_Dateierweiterung .txt

Hoffe ihr könnt mir helfen. Danke schon mal im Voraus.

Lg manni
Mitglied: bastla
02.10.2011, aktualisiert 18.10.2012
Hallo manni04!

War denn dieser "ähnliche" Beitrag (gleich da unten ;-) face-wink) wirklich nicht zu finden?

Grüße
bastla
Bitte warten ..
Mitglied: manni04
02.10.2011 um 00:56 Uhr
Sorry hab ich echt übersehen.
Aber irgendwie bekomm ich das nicht zum laufen. Vlt kannst du mir ja sagen was ich falsch mache.

Habe diese Varianten getestet, keine funktioniert bei mir. Hab doppelte Prozentzeichen wie du in deinem Post damals geschrieben hast:

Grüße
Manni
Bitte warten ..
Mitglied: bastla
02.10.2011 um 01:02 Uhr
Hallo manni04!

Mit Deinen Vorgaben etwa so:
Grüße
bastla

[Edit] >> auf > reduziert, um eine vorhandene "test.txt" zu überschreiben [/Edit]
Bitte warten ..
Mitglied: manni04
02.10.2011 um 01:14 Uhr
Hallo bastla

Danke für die raschen Antworten, aber jedes mal wenn ich die Batch-Datei starte, wird sie sofort wieder geschlossen obwohl ich am Ende eine PAUSE gesetzt hab. Es wird auch keine Datei erstellt.
Direkt in der CMD-Shell wird die Datei erstellt allerdings ist die Ausgabe nicht ganz korrekt:

02.10.2011 01:11õ225õW:\Temp\Neuer Ordner\õtest.txt

Anscheinend werden alle Leerzeichen durch dieses Sonderzeichen ersetzt, kann man das auch noch umgehen?

Grüße manni
Bitte warten ..
Mitglied: bastla
02.10.2011 um 01:27 Uhr
Hallo manni04!
Anscheinend werden alle Leerzeichen durch dieses Sonderzeichen ersetzt
Nö - "dieses Sonderzeichen" ist das gewünschte "§" - allerdings als ANSI-Zeichen (ich hatte den Code direkt im Browser ergänzt) - wenn Du das Ergebnis im Editor ansiehst, sollte es passen (ansonsten verwende eben "õ") ...

Bei mir läuft's übrigens (in der geposteten Fassung) als Batch (wobei ich ein vorhergehendes "@echo off" vorausgesetzt hatte - ansonsten die "@" der "Originalfassung" beibehalten) ...

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
02.10.2011 um 01:30 Uhr
Hallo manni04,

bei mir funktioniert bastlas Zeile. Allerdings sehr langsam.
Probier mal folgendes:
Die Paragraphen kannst du natürlich auch durch Leerzeichen ersetzen.

Grüße
rubberman
Bitte warten ..
Mitglied: bastla
02.10.2011, aktualisiert 18.10.2012
@rubberman
Allerdings sehr langsam.
... deswegen auch mein seinerzeitiger Kommentar dazu ... ;-) face-wink

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
02.10.2011 um 01:38 Uhr
@bastla

Mein Ansatz "geht" auch nur ;-) face-wink
Zig mal CALL und FINDSTR hinterlassen ihre Spuren, was die Laufzeit solcher Scripts angeht.

Grüße
rubberman
Bitte warten ..
Mitglied: manni04
02.10.2011 um 01:41 Uhr
@ bastla
Ja stimmt funktioniert wirklich, hatte anscheinend irgendwo einen Fehler drinnen. @echo off war immer drinnen.

@rubberman
Die Lösing ist ja auch sehr interessant, scheint auch wirklich schneller zu sein. Auf jeden Fall kommt aber das selbe Ergebnis raus, das ist das wichtigste ;)

Danke auf jeden Fall für eure Hilfe und die raschen Antworten.

PS: wenn ich den Pfad, der durchsucht werden soll, angeben möchte, funktioniert das wenn ich in der 2. Zeile von rubbermans Scrip das "cd" durch den Pfad austausche?

Grüße
manni
Bitte warten ..
Mitglied: bastla
02.10.2011 um 01:44 Uhr
Hallo manni!
funktioniert das wenn ich in der 2. Zeile von rubbermans Scrip das "cd" durch den Pfad austausche?
In der Zeit, die Du für das Posten dieser Frage gebraucht hast, hättest Du das schon testen können ... ;-) face-wink

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
02.10.2011 um 01:46 Uhr
Hallo manni04,

ja, einfach "%cd%" durch bspw. "c:\dein\verzeichnis" ersetzen, sollte funktionieren.

Grüße
rubberman

<edit: @bastla Völlig d'accord ;-) face-wink \>
Bitte warten ..
Mitglied: manni04
02.10.2011 um 01:47 Uhr
Hallo bastla

Hab ich eh auch getestet, wollte nur sicher gehen dass das dann auch wirklich funktioniert (vorallem bei größeren Verzeichnissen), war mir nicht ganz sicher.

Grüße manni
Bitte warten ..
Mitglied: manni04
02.10.2011 um 01:48 Uhr
@rubberman

Ok danke!

Grüße manni
Bitte warten ..
Mitglied: bastla
02.10.2011 um 02:04 Uhr
@rubberman
Zumindest "call" ließe sich ja vermeiden (ungetestet):
- ist allerdings nicht so schön wie Deine Rekursion. :-) face-smile

Der Pfad für die "Liste" muss übrigens immer vollständig angegeben werden ...

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
02.10.2011 um 02:21 Uhr
@bastla

Die Idee ist gut, du erwischt aber irgendwie nicht die gesamte Tiefe der Verzeichnisstruktur.
Im Test:
4704 Dateien bei meinem Script
2352 Dateien bei deinem Script

Grüße
rubberman
Bitte warten ..
Mitglied: bastla
02.10.2011 um 02:29 Uhr
@rubberman
Könnte daran liegen, dass bei mir die Liste bei jedem Durchlauf neu erstellt wird ... ;-) face-wink

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
02.10.2011 um 02:35 Uhr
@bastla

Vollkommen richtig. Nachdem ich die Datei vor dem Lauf gelöscht habe, spucken mir beide Scripts auch die gleiche Anzahl Dateien aus. Brett vorm Kopf -- ich glaube ich geh erst mal 'ne Stunde schlafen ;-) face-wink

Grüße
rubberman
Bitte warten ..
Mitglied: manni04
04.10.2011 um 22:01 Uhr
Hallo nochmal,

vlt kann mir ja nochmal einer von euch helfen, hätte nämlich gerne gewusst, wo ich die Parameter für die Ausgabe finden kann, also welche Möglichkeiten ich noch habe, als die bereits verwendeten.
Oder vlt kann mir ja auch einer einfach kurz zusammenschreiben was es sonst noch gibt.

Grüße
manni
Bitte warten ..
Mitglied: bastla
04.10.2011 um 22:09 Uhr
Hallo manni04!
vlt kann mir ja nochmal einer von euch helfen
Vlt - wenn Du erklären könntest, was Du genau wissen willst (und - weil das oben in etwa so angeklungen ist - nein: ein Pendant zu "%%~ti", welches das Erstellungsdatum verwendet, gibt es nicht) ...

Grüße
bastla
Bitte warten ..
Mitglied: manni04
04.10.2011 um 22:15 Uhr
Hallo bastla

Wollte einfach nur sehen was es noch für Möglichkeiten gibt, falls ich dieses Skript später mal erweitern möchte, also in welcher Hilfe von Batch ich das finden kann, bzw unter welchem Befehl.
Möchte nur wissen ob ich die Zeichenkette "%%f§%%g§%%h§%~1§%%i" um weitere Parameter erweitern kann.

In meinem ursprünglichen Skript habe ich die Parameter in der Batch-Hilfe vom Befehl FOR gefunden, diese funktionieren da ja aber nicht mehr, deshalb frage ich.

Lg
manni
Bitte warten ..
Mitglied: bastla
04.10.2011 um 22:26 Uhr
Hallo manni04!

Welche weiteren Parameter sollten das den sein? %%f bis %%i entsprechen einfach den 4 (oder genauer 3 + 1 für den dann noch folgenden Rest) Teilen ("tokens") in welche die "dir"-Zeile, zB
anhand des (Default-)Trennzeichens "Leerzeichen" zerlegt wird ...
... die Parameter in der Batch-Hilfe vom Befehl FOR gefunden, diese funktionieren da ja aber nicht mehr
Das ist so nicht ganz richtig - wenn sich eine Schleifen- oder Parameter- (wie zB %1) Variable auf eine konkrete Datei bezieht, kannst Du sehr wohl (innerhalb der Schleife oder im aufgerufenen Unterprogramm) noch zB "%%~za" oder etwa "%~dp1" verwenden.

Grüße
bastla
Bitte warten ..
Mitglied: manni04
04.10.2011 um 22:43 Uhr
Hallo bastla!

Welche weiteren Parameter sollten das den sein?

Dachte nur das man da z.B. noch das Änderungsdatum oder ähnliches dazu ausgeben könnte.

Das ist so nicht ganz richtig - wenn sich eine Schleifen- oder Parameter- (wie zB %1) Variable auf eine konkrete Datei bezieht, kannst Du sehr wohl (innerhalb der Schleife oder im aufgerufenen Unterprogramm) noch zB "%%~za" oder etwa "%~dp1" verwenden.

Ok, dazu kenn ich mich dann leider zu wenig in Batch aus um das umzusetzen, aber trotzdem danke für die Hilfe.

Grüße
manni
Bitte warten ..
Mitglied: bastla
04.10.2011 um 22:50 Uhr
Hallo manni04!
Dachte nur das man da z.B. noch das Änderungsdatum oder ähnliches dazu ausgeben könnte.
Mit "Änderungsdatum" kann ich etwas anfangen - bei meinem letzten Vorschlag wäre das zB "%%~ti" (da vorher in den betrachteten Ordner "%%a" gewechselt wurde, genügt der Dateiname in "%%i" als Bezug auf die Datei) ...

... "ähnliches" ist mir aber zu nebulos ... ;-) face-wink

Grüße
bastla
Bitte warten ..
Mitglied: manni04
04.10.2011 um 23:09 Uhr
Hallo bastla

... bei meinem letzten Vorschlag wäre das zB "%%~ti" (da vorher in den betrachteten Ordner "%%a" gewechselt wurde, genügt der Dateiname in "%%i" als Bezug auf die Datei) ...

Wie gesagt sogut kenn ich mich dann leider auch nicht aus, aber trotzdem danke.

... "ähnliches" ist mir aber zu nebulos ...

Damit hab ich einfach nur die restlichen Parameter der FOR-Schleife gemeint, aber is nicht so wichtig. War nur interesse halber.

Lg manni
Bitte warten ..
Mitglied: manni04
04.10.2011 um 23:25 Uhr
Jetzt ist mir noch aufgefallen, dass Umlaute und Sonderzeichen falsch dargestellt werden. Kennst du dafür auch eine Lösung, den Zeichensatz gleich in Batch umzuwandeln?

Meine Testdatei "ÜüÄäÖöß!§$%&()=`´'#;µ²³{[]}^°.txt" und das Ergebnis "šŽ„™”á!õ$%&()=`ï'#;æýü{[]}^ø.txt"

Grüße
manni
Bitte warten ..
Mitglied: bastla
05.10.2011 um 07:56 Uhr
Hallo manni04!

Setz an den Anfang des Batches die Zeile
Grüße
bastla
Bitte warten ..
Mitglied: manni04
05.10.2011 um 19:31 Uhr
Hallo bastla!

Super, funktioniert einwandfrei. Danke für die tolle Hilfe!

Grüße
manni
Bitte warten ..
Heiß diskutierte Inhalte
Microsoft
Mitteilung an alle bei Störungen in der IT
gelöst David.B2D45Vor 1 TagFrageMicrosoft31 Kommentare

Hallo Forum, ich bin auf der Suche nach einem Programm / Tool mit dem ich Text (Laufschrift) auf allen (gewünschten) PC's / Benutzer im ...

Exchange Server
Exchange Zero Day Hack - Wie entfernen?
gelöst mtaiitVor 19 StundenFrageExchange Server28 Kommentare

Hallo, bei mir hat es einige Kundenserver getroffen Weiß einer wie ich diese WebShells wieder loswerde? Das löschen der betroffenen .aspx Dateien wird wohl ...

E-Mail
Kann man mit SPF Mails für eine Domäne vollständig verbieten?
gelöst StefanKittelVor 1 TagFrageE-Mail17 Kommentare

Hallo, viele Firmen haben ja zusätzliche Domänen. Als Web- und oder Mail-weiterleitung. Es werden also niemals Emails damit gesendet werden. kann man mit einem ...

Server-Hardware
Firmware-Updates auf Servern
redhorseVor 1 TagFrageServer-Hardware8 Kommentare

Guten Morgen, die Server-Hersteller stellen bekanntlich regelmäßig Firmware- und Treiberupdates für deren Serverhardware bereit, diese können z.B. bei Dell als Dell EMC Server Update ...

Linux
Windows auf Dualbootrechner entfernen und Linux die komplette Platte zur Verfügung stellen
N8chtfalterVor 1 TagFrageLinux6 Kommentare

Hallo Linux Profis, ich habe einen Laptop auf dem ursprünglichen Windows 10 installiert war, und ist, ich habe vor einem Jahr Ubuntu testhalber als ...

Router & Routing
Routing öffentliche IP-Adresse-Traffic per BGP im internal-Network
gelöst jescheroVor 1 TagFrageRouter & Routing2 Kommentare

Guten Abend alle zusammen, ich habe ein kleines Problem beim Routing in pfSense. Mein aktuelles Aufbau ist folgenden: Ich habe eine pfSense-VM und zwei ...

Windows Server
Domänenadmin kann kein Zertifikat anfordern
noodellsVor 1 TagFrageWindows Server6 Kommentare

Hallo Zusammen, ich habe ein Problem beim Finden einer Einstellung. Zuerst einmal der Stand: Es gibt eine Windows CA und Domaincontroller und alles funktionierte ...

Exchange Server
Windows Server 2019 + Exchange Server 2019 (Probleme mit Pop3)
gelöst aristonVor 1 TagFrageExchange Server4 Kommentare

Hallo zusammen, ich habe gerade angefangen, mit dem Exchange Server 2019 in der Demoversion zu arbeiten und folge Schritt für Schritt bei der notwendigen ...