lucky777
Goto Top

Batch - einfache Ausgabe von Erstellungsdatum, Pfad, Dateiname leerzeichengetrennt in txt

Das Problem erscheint trivial - jedoch habe ich dazu nichts im Internet gefunden.

Mit Programmiersprachen im allgemeinen kenne ich mich aus, jedoch nicht besonders gut mit Batch-Befehlen (mit Perl wüsste ich, wie man's macht face-wink).

Ich brauche "einfach" nur eine Textdatei, die von einem kompletten Laufwerk folgendes zeilenweise mit leerzeichen oder tab getrennt auflistet:

Erstellungsdatum Erstellungszeit Dateipfad/Dateiname

Beispiel:
21.08.2010 10:20 C:\Pfad\Dateiname.xls
(oder von mir aus andersrum, hauptsache aber mit leerzeichen oder tab getrennt!)

Mit einem einfachen Dir-Befehl bekomme ich das nicht hin.
Selbst wenn ich es per "Dir C:\ /TC >>test.txt" in eine Datei packe, bekomme ich die Formatierung der Datei mit einer FOR-Schleife nicht hin, da er mir mit dem Dir-Befehl zwischen Uhrzeit und Dateipfad beliebig viele Leerzeichen speichert.

Gibt es nicht einen einfachen Batch-Befehl, mit dem man direkt die gesamte Festplatte durchgeht und nur die Variablen "Pfad", "Name" und "Erstellzeit" speichert?

Vielen Dank! face-smile)

Grüße
Sven

Content-ID: 173439

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

Ausgedruckt am: 23.11.2024 um 05:11 Uhr

bastla
bastla 21.09.2011 um 10:33:49 Uhr
Goto Top
Hallo Lucky777 und willkommen im Forum!

Etwa so direkt in der CMD-Shell:
(for /f "delims=" %i in ('dir /s /b /a-d /tc C:\') do @echo %~ti %i)>>test.txt
Wenn's ein Batch werden soll, jeweils die Prozentzeichen verdoppeln ...

Grüße
bastla
Skyemugen
Skyemugen 21.09.2011 um 10:37:08 Uhr
Goto Top
Aloha bastla,

öhm aber ... /TC greift nicht bei /B und %~ti neq /TC face-wink (%~ti nimmt auch nicht den Wert aus /TC an)

TC:
31.08.2011  11:58                48 3859965.dnc
31.08.2011  12:09                48 5959965.dnc
%~ti
31.08.2011 15:31 E:\Skripte\3859965.dnc
31.08.2011 15:31 E:\Skripte\5959965.dnc

greetz André
Lucky777
Lucky777 21.09.2011 um 10:41:19 Uhr
Goto Top
funktioniert! Danke!!!! face-smile

Das ging ja echt fix...
Ich werd mir den Code gleich mal genauer anschauen, um zu lernen face-wink
Lucky777
Lucky777 21.09.2011 um 10:47:50 Uhr
Goto Top
... wie Skyemugen geschrieben hat, nimmt er tatsächlich nicht das Erstell, sondern das Änderungsdatum.

Edit: Ja, ich musste erst herausfinden, wie ich das Häkchen wieder weg bekomme - nachdem man es so komfortabel mit einem klick hinzufügen konnte face-wink
Skyemugen
Skyemugen 21.09.2011 um 10:48:51 Uhr
Goto Top
Aloha Lucky,

mich wundert ... du wolltest das Erstellungsdatum, bastlas Code liefert dir das Änderungsdatum ... (wie in meinem vorigen Kommentar zu erkennen).

greetz André

edit Ah, ok das hast du eben auch gemerkt, dann wieder weg mit dem grünen Häkchen *fg*
pieh-ejdsch
pieh-ejdsch 21.09.2011 um 11:07:30 Uhr
Goto Top
moin Lucky,

dann musst Du nur bastlas Einzeiler ein bissel Modifizieren

(for /f "tokens=1-3*" %i in (' dir /s /a-d /tc ^|findstr /b [0-9] ') do @echo %i %j %l)>>test.txt  

Gruß Phil
bastla
bastla 21.09.2011 um 11:15:21 Uhr
Goto Top
Hallo Lucky777!

Sorry - war nicht wirklich durchdacht ...

... so sollte das besser gehen (ich schreibe absichtlich nicht "laufen" face-wink):
(for /f "delims=" %i in ('dir /s /b /a-d C:\') do @for /f "tokens=1-2" %a in ('dir /tc "%i"^|findstr /i /c:"%~nxi"') do @echo %a %b %i)>>test.txt
Falls tatsächlich Pfad und Dateiname getrennt werden sollen, etwa so:
(for /f "delims=" %i in ('dir /s /b /a-d C:\') do @for /f "tokens=1-2" %a in ('dir /tc "%i"^|findstr /i /c:"%~nxi"') do @echo %a %b "%~dpi" "%~nxi")>>test.txt
@ph
Schöner Ansatz face-smile - es sollte aber der komplette Pfad werden ...

Grüße
bastla

[Edit] Wie von Skye angeregt überflüssigen Schalter "/tc" entfernt [/Edit]
Skyemugen
Skyemugen 21.09.2011 um 11:20:49 Uhr
Goto Top
Aloha bastla *mampf*,

schade, wollte gerade posten, warst schneller *mampf* aber kannst das /tc im ersten dir weglassen *mampf*

greetz André
Lucky777
Lucky777 21.09.2011 um 11:39:06 Uhr
Goto Top
Perfekt. Jetzt schaut das genau so aus, wie ich mir das vorgestellt hab.

Bin echt begeistert, wie schnell man hier kompetente Hilfe bekommt. Danke euch!