batch - 修改子文件夹中的每个csv文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了batch - 修改子文件夹中的每个csv文件相关的知识,希望对你有一定的参考价值。

我尝试制作一个批处理脚本,用于更新文件夹(和子文件夹)中每个.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 
答案

这应该是您实现这一目标所需的全部内容:

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

以上是关于batch - 修改子文件夹中的每个csv文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将每个 .csv 文件分配给单个子图?

PYSPARK - 如何读取 S3 中所有子文件夹中的所有 csv 文件?

如何使用 Windows Batch 读取和编辑 (>3GB) csv 文件?

VBA-使用日期搜索条件在网络位置上遍历多个子文件夹/提高搜索速度

捕获主目录中所有子文件夹中的所有 csv 文件 - Python 3.x

Spring Batch 简单应用(CSV文件操作)