Ich habe ein Verzeichnis mit mehreren CSV-Dateien. Ich möchte die Zeilenanzahl für jede Datei, das Änderungsdatum jeder Datei und die Zeichenfolge in der ersten Spalte nach der Kopfzeile mithilfe von Batch-Skripten unter Windows 10 zurückgeben. Wie kann ich die Ausgabe in eine Textdatei vornehmen?
Beispiel
File 1: String 100 lines 1/12/2019
File 2: String 100 lines 1/10/2019
File 3: String 200 lines 1/12/2019
Antwort1
Ich werde das Skript nicht für Sie erstellen, aber ich gebe Ihnen die Methoden für das, was Sie wollen. Lassen Sie uns die Frage zunächst in zwei Teile aufteilen:
1.- Zeilenanzahl in Dir abrufen
for /f "usebackq tokens=1 delims=," %%a in ("you_file_path") do set /a count+=1
und um die erste Zeile nach der Kopfzeile zu erhalten, würden Sie das tun, aber mit einem Schleifenunterbruch
for /f "usebackq tokens=1 delims=," %%a in ("you_file_path") do (
set /a count+=1 && if count==2 (first_row=%%a && goto next)
)
:next
2.- Änderungsdatum
for /f "tokens=1,2 delims= " %%a in (
'dir "FullDirPath" ^| find /i "File_name"'
) do set ArchDate=%%a
Jetzt liegt es an Ihnen, dies zusammenzufügen und ein Skript zu erstellen. Sie müssen jede Datei mit dem obigen Code schleifen und am Ende jeder Schleife echo "%first_row%" "%archdate%" "%count%"
oderecho "%first_row%" "%archdate%" "%count%" > file.txt
Sie können diese Methoden in testen, cmd
aber um Variablen auf dem Terminal zu verwenden, müssen Sie ersetzen %%a
. %a
In einem Batch-Skript ist dies %%a
die richtige Syntax, aber auf dem Terminal %a
ist dies die richtige Syntax.
Prost.