Obrigado! Estou respondendo a mim mesmo, com o que funcionou para mim. Eu substituí a última linha assim.
XCOPY new.csv ..\new_!i!.csv
Isto está em continuação com a questão aqui. Script em lote: concatenando vários arquivos em várias pastas em um único arquivo
Eu tenho 20 arquivos com o nome 'new.csv' em 20 pastas no mesmo diretório pai. Eu quero concatenar todos eles em um arquivo. Então, quero fazer isso em duas etapas.
Estou usando o XCOPY para copiar cada new.csv de cada pasta para new1, new2, new3 etc. na pasta pai. Se eu puder fazer isso, na minha pasta pai, eu tenho 20 csvs, new1, new2..new20.csv.
Então, posso fazer apenas um copy new*.csv final.csv
. Então, este é o código que eu escrevi para fazer as cópias de cada um desses new.csv
de cada pasta na pasta pai.
setlocal EnableDelayedExpansion
set /a i=0
FOR /D /R %%G in ("*") DO (
cd %%G
set /a i=i+1
XCOPY new.csv ..\new%!i!%.csv )
O problema está em criar um novo arquivo. Eu quero criar 20 arquivos com nomes, new1.csv, new2.csv, new3.csv ... new20.csv. O valor do contador está sendo incrementado, mas não posso anexá-lo a 'novo'. Você poderia por favor ajudar?
Obrigado! Estou respondendo a mim mesmo, com o que funcionou para mim. Eu substituí a última linha assim.
XCOPY new.csv ..\new_!i!.csv
Se você quiser os caminhos completos para os CSVs individuais listados no CSV consolidado, use este:
for /r %f in (*.csv) do @echo "%f" >> New.csv && echo. >> New.csv && type "%f" >> New.csv && echo. >> New.csv && echo --- >> New.csv
Se você quiser apenas o conteúdo do CSV, use este:
for /r %f in (*.csv) do @type "%f" >> New.csv && echo. >> New.csv
echo.
adiciona uma nova linha ao arquivo e pode ser removido se não for necessário para encurtar ainda mais o comando.
Esses comandos precisam ser digitados no diretório pai. Se você os estiver usando em um arquivo de lote, lembre-se de dobrar cada sinal%.