Como posso separar um único arquivo de texto em vários arquivos de texto por linhas?
Com base no comentário de Seth , você pode usar o seguinte arquivo em lotes:
@echo off
cls
setlocal enabledelayedexpansion
set /p "filename=type file name>"
rem initialise counter to 1
set _count=1
for /r E:\ %%a in (*) do if "%%~nxa"=="%filename%" (
echo %%~dpnxa >>path!_count!.txt
rem increment the counter
set /a _count+=1
)
endlocal
Notas:
- Mudei a linha
setlocal
para impedir que a variávelfilename
vazasse para a chamadacmd
shell.
Leitura Adicional
- Um índice A-Z da linha de comando do Windows CMD
- Uma lista categorizada de comandos do Windows CMD
- enabledelayedexpansion - Expansão com atraso fará com que as variáveis sejam expandidas em tempo de execução e não no tempo de análise.
- endlocal - Finaliza a localização das alterações do ambiente em um arquivo de lote. Passar variáveis de um arquivo de lote para outro.
- para / r - Fazer um loop pelos arquivos (criar subpastas).
- definir - Exibir, definir ou remover variáveis de ambiente do CMD. As alterações feitas com o SET permanecerão apenas pela duração da sessão atual do CMD.
- setlocal - Defina opções para controlar a visibilidade de variáveis de ambiente em um arquivo em lotes.