Eu quero que isso seja feito para um conjunto de arquivos csv em uma pasta
Mais uma vez, o arquivo de lote é dividido de várias maneiras diferentes.
Você precisa aprender como depurar seus próprios arquivos em lote:
- Veja Depurando seus arquivos de lote para algumas dicas.
- Para depurar você também precisa verificar a sintaxe dos comandos que você está usando. Consulte Um índice A-Z da linha de comando do Windows CMD .
Em vez de perder tempo com a depuração de seu arquivo de lote, é mais rápido modificar o arquivo de lote da minha resposta para a pergunta vinculada para responder à sua nova pergunta.
Use o seguinte arquivo de lote (example.cmd):
@echo off
setlocal
if exist three.txt del three.txt
for /r %%i in (*.csv) do (
call :process_file %%i
)
goto :eof
:process_file
echo processing %1
for /f "skip=5 tokens=1-10 usebackq delims=," %%a in ('type %1') do (
set _date=%%d
goto :next
)
:next
rem add the date to the end of every line and output to "three.txt"
for /f "tokens=* usebackq" %%a in ('type %1') do (
echo %%a,%_date%>> three.txt
)
)
endlocal
Como escrevo os resultados para o mesmo arquivo csv em vez do três.txt?
Use o seguinte arquivo de lote (example.cmd):
@echo off
setlocal
for /r %%i in (*.csv) do (
call :process_file %%i
)
goto :eof
:process_file
echo processing %1
for /f "skip=5 tokens=1-10 usebackq delims=," %%a in ('type %1') do (
set _date=%%d
goto :next
)
:next
rem add the date to the end of every line and output to "three.txt"
for /f "tokens=* usebackq" %%a in ('type %1') do (
echo %%a,%_date%>> three.txt
)
)
rem rename the file
del %~nx1
ren three.txt %~nx1
endlocal
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.
-
ligue - chame um programa em lotes de outro, ou chame uma sub-rotina.
- del - Exclua um ou mais arquivos.
- para / f - Comando Loop contra os resultados de outro comando.
- para / r - Fazer um loop pelos arquivos (criar subpastas).
- ir para - Direcione um programa em lotes para ir para uma linha rotulada.
- parâmetros - Um argumento de linha de comando (ou parâmetro) é qualquer valor passado para um script em lote.
- ren - Renomeie um arquivo ou arquivos.
- tipo - Exibe o conteúdo de um ou mais arquivos de texto.