Lote de entrada de archivos múltiples eliminar nueva línea

Lote de entrada de archivos múltiples eliminar nueva línea

Estoy intentando cambiar el guión; en lugar de agregar una línea file.txt, quiero hacerlo para todos *.txtlos archivos dentro del directorio. Este script elimina nuevas líneas y agrega una coma para separarlas.

Cualquier ayuda se agradece.

@echo off
setlocal EnableDelayedExpansion

set "line="


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

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

MI archivo de entrada que estoy intentando usar es el siguiente csv 2019-05-29 08:03:48,InclinaciónA,3.420,19.9,0.5017,0.6903 2019-05-29 09:03:48,InclinaciónB,3.420,19.9,0.3017,0.6903 2019-05-29 08:03:48 ,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

Respuesta1

¡Gracias por aclararlo! Esto debería llevarte en la dirección correcta:

@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"
)

Recomiendo encarecidamente tener una carpeta de salida diferente a menos que desee sobrescribir los archivos de texto de origen, así que esto es lo que se me ocurrió. El primer bucle revisará todos sus archivos txt en el directorio especificado ( for /r %dir%) y establecerá el nombre de cada uno de ellos como variable new; Inmediatamente después comprobará la existencia de ese newarchivo txt en su directorio de salida y lo eliminará; este es un paso crucial porque tenemos que usar >>para generar todos los %%Bparámetros en una sola línea, ya que >sobrescribirá todas las entradas anteriores. Si no elimina ningún newarchivo de texto potencial creado al ejecutar previamente el script, se duplicarán las entradas en la línea. Una vez solucionado esto, tenemos un bucle for anidado que toma la información del archivo de texto y la utiliza echo|set /ppara colocar cada uno %%Ben la misma línea con un archivo ,. Con esta secuencia de comandos básica, habrá un seguimiento ,del que es posible que desee deshacerse o no; de lo contrario, creo que esto logrará lo que está buscando.

información relacionada