Eu preciso extrair o nome de cada arquivo e uma linha dentro do arquivo e exportá-lo para um novo arquivo .txt.
The line I need to copy will always start with
System Boot Time:
I'd like it to output inside the new .txt file something like this:
txtfile1
System Boot Time: xx/xx/xxxx
txtfile2
System Boot Time: xx/xx/xxxx
txtfile3
System Boot Time: xx/xx/xxxx
Use o seguinte arquivo em lotes.
Merge.cmd:
@echo off
setlocal
for /f "useback delims=: tokens=1-3" %%i in ('findstr /C:"System Boot Time:" "*.txt"') do (
echo %%i >> new.txt
echo %%j:%%k >> new.txt
)
endlocal
Exemplo de saída:
F:\test>type ?.txt
1.txt
System Boot Time: 01/01/1900
2.txt
System Boot Time: 01/02/2003
3.txt
System Boot Time: 02/03/2004
F:\test>merge
F:\test>type new.txt
1.txt
System Boot Time: 01/01/1900
2.txt
System Boot Time: 01/02/2003
3.txt
System Boot Time: 02/03/2004
Notas:
- Todos os arquivos correspondentes a
*.txt
são pesquisados por uma string correspondente a "Tempo de inicialização do sistema" - Os resultados são enviados para
new.txt
- Se você quiser executar
Merge.cmd
várias vezes, lembre-se dedel new.txt
primeiro.
Leitura Adicional
- Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
- para / f - Comando Loop contra os resultados de outro comando.
- findstr - Pesquise strings em arquivos.