como contar todos os arquivos em dir , retornar a contagem de linhas, modificar a data do arquivo e a segunda linha da primeira coluna

como contar todos os arquivos em dir , retornar a contagem de linhas, modificar a data do arquivo e a segunda linha da primeira coluna

Tenho um diretório com vários arquivos csv. Gostaria de retornar a contagem de linhas de cada arquivo, a data de modificação de cada arquivo e a string na primeira coluna após a linha do cabeçalho usando scripts em lote na janela 10. Como eu faria a saída para um arquivo de texto?

Exemplo

File 1: String 100 lines 1/12/2019
File 2: String 100 lines 1/10/2019
File 3: String 200 lines 1/12/2019

Responder1

Não vou fazer o script para você, mas vou lhe dar os métodos para o que você deseja. Primeiro vamos dividir a questão em duas partes:

1.- Obtenha a contagem de linhas em Dir

for /f "usebackq tokens=1 delims=," %%a in ("you_file_path") do set /a count+=1

e para obter a primeira linha após o cabeçalho você faria isso, mas com uma quebra de loop

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.- Data Modificada

for /f "tokens=1,2 delims= " %%a in (
    'dir "FullDirPath" ^| find /i "File_name"'
) do set ArchDate=%%a

Agora cabe a você colar tudo isso e criar um script, você precisaria fazer um loop em cada arquivo usando o código acima e no final de cada loop echo "%first_row%" "%archdate%" "%count%"ouecho "%first_row%" "%archdate%" "%count%" > file.txt

Você pode testar esses métodos, cmdmas para usar variáveis ​​no terminal você precisa substituir %%apor %a. Em um script em lote é %%aa sintaxe correta, mas no terminal %aé a sintaxe correta.

Saúde.

informação relacionada