Lote de entrada de vários arquivos remove nova linha

Lote de entrada de vários arquivos remove nova linha

Estou tentando mudar o roteiro; em vez de adicionar uma linha file.txt, quero fazer isso para todos *.txtos arquivos dentro do diretório. Este script remove novas linhas e adiciona uma vírgula para separar.

Qualquer ajuda será apreciada.

@echo off
setlocal EnableDelayedExpansion

set "line="


for /F "delims=" %%a in (inputfile.txt) do set "line=!line!,%%a"

echo !line:~1!>>outputfile.txt

MEU arquivo de entrada que estou tentando usar é o csv abaixo 29/05/2019 08:03:48,TiltA,3.420,19.9,0.5017,0.6903 ,TiltC,3.420,19.9,0.5017,0.6903 2019-05-29 09:03:48,TiltD,3.420,19.9,0.3017,0.6903 2019-05-29 08:03:48,TiltE,3.420,19.9,0.5017,0 .6903

Responder1

Agradeço por ter esclarecido! Isso deve levá-lo na direção certa:

@echo off

set "dir=C:\Your\Directory"
set "dirs=C:\Your\Output\Folder"

setlocal enabledelayedexpansion
for /r "%dir%" %%A in (*.txt) do (
    set "new=%%~nA"
    if exist "%dirs%\!new!.txt" del /f /q "%dirs%\!new!.txt"
    for /f %%B in (%%A) do (
        echo|set /p="%%B,"
    ) >> "%dirs%\!new!.txt"
)

Eu recomendo fortemente ter uma pasta de saída diferente, a menos que você queira sobrescrever seus arquivos txt de origem - então foi isso que eu criei. O primeiro loop percorrerá todos os seus arquivos txt no diretório especificado ( for /r %dir%) e definirá o nome de cada um deles como variável new; imediatamente depois disso ele irá verificar a existência daquele newarquivo txt em seu diretório de saída e excluí-lo - esta é uma etapa crucial porque temos que usar >>para gerar todos os %%Bparâmetros em uma única linha, pois >irá sobrescrever todas as entradas anteriores. Se você não excluir nenhum newarquivo txt potencial criado a partir da execução anterior do script, as entradas na linha serão duplicadas. Depois de cuidar disso, temos um loop for aninhado que pega as informações do arquivo de texto e usa echo|set /ppara colocar cada um %%Bna mesma linha com um ,. Com este script básico, haverá um rastro ,do qual você pode ou não querer se livrar - caso contrário, acredito que isso realizará o que você está procurando.

informação relacionada