Tengo un directorio con varios archivos csv. Me gustaría devolver el recuento de líneas de cada archivo, la fecha de modificación de cada archivo y la cadena en la primera columna después de la fila del encabezado usando scripts por lotes en la ventana 10. ¿Cómo enviaría un archivo de texto?
Ejemplo
File 1: String 100 lines 1/12/2019
File 2: String 100 lines 1/10/2019
File 3: String 200 lines 1/12/2019
Respuesta1
No voy a hacer el guión por ti, pero te daré los métodos para lo que quieras. Primero dividamos la pregunta en dos partes:
1.- Obtener recuento de líneas en Dir
for /f "usebackq tokens=1 delims=," %%a in ("you_file_path") do set /a count+=1
y para obtener la primera fila después del encabezado, harías eso pero con un salto de bucle
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.- Fecha de Modificación
for /f "tokens=1,2 delims= " %%a in (
'dir "FullDirPath" ^| find /i "File_name"'
) do set ArchDate=%%a
Ahora depende de usted unir esto y crear un script, necesitaría hacer un bucle en cada archivo usando el código anterior y al final de cada bucle echo "%first_row%" "%archdate%" "%count%"
oecho "%first_row%" "%archdate%" "%count%" > file.txt
Puede probar estos métodos en cmd
pero para utilizar variables en el terminal debe reemplazarlas %%a
por %a
. En un script por lotes, esta %%a
es la sintaxis correcta, pero en el terminal %a
es la sintaxis correcta.
Salud.