Пакетный ввод нескольких файлов с удалением новой строки

Пакетный ввод нескольких файлов с удалением новой строки

Я пытаюсь изменить скрипт; вместо добавления строки в file.txt, я хочу сделать это для всех *.txtфайлов внутри каталога. Этот скрипт удаляет новые строки и добавляет запятую для разделения.

Любая помощь приветствуется.

@echo off
setlocal EnableDelayedExpansion

set "line="


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

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

МОЙ входной файл, который я пытаюсь использовать, это CSV ниже 2019-05-29 08:03:48,TiltA,3.420,19.9,0.5017,0.6903 2019-05-29 09:03:48,TiltB,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

решение1

Спасибо за разъяснение! Это должно направить вас в правильном направлении:

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

Я настоятельно рекомендую иметь другую выходную папку, если вы не хотите перезаписывать исходные txt-файлы — вот что я придумал. Первый цикл пройдет по всем вашим txt-файлам в указанном каталоге ( for /r %dir%) и установит имя каждого из них как переменную new; сразу после этого он проверит наличие этого newtxt-файла в вашем выходном каталоге и удалит его — это важный шаг, потому что нам нужно использовать >>для вывода всех %%Bпараметров в одной строке, так как >заменит все предыдущие записи. Если вы не удалите ни одного потенциального newtxt-файла, созданного при предыдущем запуске скрипта, он продублирует записи в строке. После этого у нас есть вложенный цикл for, который берет информацию из текстового файла и использует echo|set /pдля размещения каждого %%Bна той же строке с ,. С этим базовым скриптом будет хвостик, ,от которого вы можете захотеть избавиться или нет — в противном случае, я считаю, что это достигнет того, что вы ищете.

Связанный контент