ghost-in-the-shell
Goto Top

Dateiname in CSV-Datei schreiben

[Edit]Titel editiert. Biber [/Edit]
[Edit II]Beitrag auf gelöst gesetzt und geschlossen 25.2.2006 Biber [/Edit]

hi, also ich will ein Verzeichnis überwachen sobald eine neue Datei hin kopiert wird schreibt ein script in eine cvs Datei den Namen der Datei.

ich dachte zuerst an "dir *.zip >inhalt.cvs" aber da sind zu viel unwichtige Infos drinne wie große usw. nun müsste ich das ja nur kürzen ... aber wie?

Content-Key: 23564

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

Printed on: April 20, 2024 at 02:04 o'clock

Member: Biber
Biber Jan 15, 2006 at 15:15:35 (UTC)
Goto Top
Moin Schlemmer,

ich bin nicht ganz sicher, ob Du tatsächlich das "Concurrent Versions System" CVS mit diesen Infos füttern willst oder doch nur "Comma Separated Value"-Textdateien erzeugen willst.. ich gehe mal von den (Excel-tauglichen) *.csv-Dateien aus.

In letzterem Fall hast Du viele Möglichkeiten, je nachdem welche Datei-Infos Du für erhaltenswert hältst.

Wenn Du nur den nackten Pfad- und Dateinamen brauchst, bekommst Du den mit "dir /b *.zip" geliefert.
Wenn Du zusätzliche Infos wie Datum/Uhrzeit brauchst (aber nicht die Größe beispielsweise), dann kannst Du die Ausgabe des normalen DIR-Befehls spaltenweise mit dem FOR /F..IN..DO..auswerten.

Beispiel am CMD-Prompt:
$cmd$ dir *.txt
Datenträger in Laufwerk Z: ist GARBAGE5
Datenträgernummer: 7FFF-FFFF

Verzeichnis von Z:\

04.04.2000 23:19 4.069 putinenv.txt
1 Datei(en) 4.069 Bytes
0 Verzeichnis(se), 8.884.224 Bytes frei

Wenn Du von diesen Zeilen nur die haben willst, die den String ".txt" enthalten und davon nur die Spalten 1,2 und 4:

$cmd$ for /f "tokens=1,2,4" %i in ('dir *.txt^|find /i ".txt"') do @echo %i %j %k

04.04.2000 23:19 putinenv.txt

oder im Batch (mit Schreiben in eine *.csv-Datei mit Semikoli als Delimeter):
for /f "tokens=1,2,4" %%i in ('dir *.txt^|find /i ".txt"') do @echo %%i;%%j;%%k>>NewFiles.csv

HTH Biber