You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Windows批处理脚本修改CSV文件中的日期格式

批量修改CSV日期格式的BAT脚本

以下BAT脚本可处理带表头的CSV文件,将Despatch_date [date]字段的日/月/年日期格式转换为月/日/年格式,同时保留原文件备份:

@echo off
setlocal enabledelayedexpansion

:: 设置要处理的CSV文件路径(可替换为单个文件或目录下所有CSV,比如*.csv)
set "csv_files=*.csv"

for %%f in (%csv_files%) do (
    :: 创建原文件备份,后缀为.bak
    copy "%%f" "%%f.bak" >nul
    echo 正在处理文件: %%f

    :: 创建临时文件存储处理后的数据
    set "temp_file=%%~nf_temp.csv"
    del "%temp_file%" 2>nul

    set "header_processed=0"
    set "date_col=-1"

    :: 逐行读取原文件
    for /f "usebackq tokens=* delims=" %%l in ("%%f") do (
        if !header_processed! equ 0 (
            :: 处理表头,定位Despatch_date [date]所在的列
            echo %%l >> "%temp_file%"
            set "line=%%l"
            set "col_index=0"
            :: 分割表头字段
            for %%c in ("!line:,=" "!") do (
                set "col=%%~c"
                if "!col!"=="Despatch_date [date]" (
                    set "date_col=!col_index!"
                )
                set /a col_index+=1
            )
            set "header_processed=1"
        ) else (
            :: 处理数据行
            if !date_col! neq -1 (
                set "line=%%l"
                set "current_col=0"
                set "new_line="
                :: 分割数据行的每个字段
                for %%c in ("!line:,=" "!") do (
                    set "field=%%~c"
                    if !current_col! equ !date_col! (
                        :: 转换日期格式:日/月/年 -> 月/日/年
                        for /f "tokens=1-3 delims=/" %%d in ("!field!") do (
                            set "day=%%d"
                            set "month=%%e"
                            set "year=%%f"
                            :: 确保月份和日期是两位数字(补前导零)
                            if "!day:~1!"=="" set "day=0!day!"
                            if "!month:~1!"=="" set "month=0!month!"
                            set "new_field=!month!/!day!/!year!"
                        )
                        set "new_line=!new_line!!new_field!,"
                    ) else (
                        set "new_line=!new_line!!field!,"
                    )
                    set /a current_col+=1
                )
                :: 移除最后一个多余的逗号,写入临时文件
                set "new_line=!new_line:~0,-1!"
                echo !new_line! >> "%temp_file%"
            ) else (
                :: 如果未找到目标字段,直接写入原行
                echo %%l >> "%temp_file%"
            )
        )
    )

    :: 替换原文件为处理后的临时文件
    del "%%f"
    ren "%temp_file%" "%%~nxf"
    echo 处理完成,原文件备份为: %%f.bak
)

echo 所有文件处理完毕!
pause

关键说明

  • 文件路径设置:修改set "csv_files=*.csv"可指定单个文件(比如set "csv_files=orders.csv")或目录下所有CSV文件
  • 备份机制:脚本会自动为每个原文件创建.bak后缀的备份,避免数据丢失
  • 日期补零:自动为单个数字的日/月补前导零(比如3/7/2025会转为07/03/2025)
  • 字段兼容性:仅修改指定的Despatch_date [date]字段,其他字段内容保持不变

注意事项

  • 确保CSV文件中Despatch_date [date]字段的日期格式严格为日/月/年,且字段内不包含逗号
  • 脚本依赖Windows的CMD环境,需保存为.bat文件后双击运行

内容的提问来源于stack exchange,提问作者Steve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 16:20:10