
我正在嘗試改變劇本;我不想在 中新增一行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
;之後,它會立即檢查輸出目錄中是否存在該new
txt 檔案並將其刪除 - 這是關鍵的一步,因為我們必須在一行上>>
輸出所有參數,因為這將覆蓋先前的所有條目。如果您不刪除先前執行腳本時建立的任何潛在 txt 文件,它將複製該行中的條目。之後,我們有一個嵌套的 for 循環,它從文本文件中獲取信息,並使用.使用這個基本腳本,您可能會或可能不想刪除一個尾隨- 否則,我相信這將實現您正在尋找的內容。%%B
>
new
echo|set /p
%%B
,
,