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?
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?
Please also mark the comments that contributed to the solution of the article
Content-Key: 23564
Url: https://administrator.de/contentid/23564
Printed on: April 20, 2024 at 02:04 o'clock
1 Comment
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
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