我尝试制作一个批处理脚本,用于更新文件夹(和子文件夹)中每个.csv文件的标题行。 由于我不想真正修改源文件,因此我使用新标题,相同内容和新扩展名创建新文件" .csv.modified"
当我只有一个.csv(我只删除/ s)但是当>时忽略其他文件的内容时脚本工作正常。 1。
注意:我有很多子文件夹,其中一些包含空格。
有什么想法吗?
@echo off
cls
setlocal enabledelayedexpansion
set HEADERS=header1,header2
for /f "delims=" %%i in ('dir /b /s *.csv') do (
set filename=%%~i
echo !filename!
echo.
set cpt=1
set new_filename=!filename!.modified
@copy nul "!new_filename!"
echo creating !new_filename!
echo %HEADERS%>"!new_filename!"
for /f %%a in (%%~i) do (
set line=%%a
if !cpt! gtr 2 (
echo Y
echo !line!>>"!new_filename!"
) else (
echo N
)
echo !cpt! %%a
set /a cpt=!cpt!+1
)
)
endlocal
答案 0 :(得分:0)
这应该是您实现这一目标所需的全部内容:
@SET "HEADERS=header1,header2"
@FOR /F "DELIMS=" %%A IN ('DIR/B/S/A-D-S-L *.csv') DO @((ECHO %HEADERS%
MORE +1 "%%~A")>"%%~A.modified")