多檔案輸入批次刪除換行符

多檔案輸入批次刪除換行符

我正在嘗試改變劇本;我不想在 中新增一行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,傾斜A,3.420,19.9,0.5017,0.6903 2019-05-29 09:03:48,傾斜B,3.420,19.9,0.3017,0. 。 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 檔案 - 所以這就是我想出的。第一個循環將遍歷指定目錄 ( for /r %dir%) 中的所有 txt 文件,並將每個文件的名稱設為變數new;之後,它會立即檢查輸出目錄中是否存在該newtxt 檔案並將其刪除 - 這是關鍵的一步,因為我們必須在一行上>>輸出所有參數,因為這將覆蓋先前的所有條目。如果您不刪除先前執行腳本時建立的任何潛在 txt 文件,它將複製該行中的條目。之後,我們有一個嵌套的 for 循環,它從文本文件中獲取信息,並使用.使用這個基本腳本,您可能會或可能不想刪除一個尾隨- 否則,我相信這將實現您正在尋找的內容。%%B>newecho|set /p%%B,,

相關內容