【问题标题】:Combined csv via cmd通过 cmd 组合 csv
【发布时间】:2016-05-04 04:18:07
【问题描述】:

我目前正在研究一种组合 3 个 csv 文件并使用以下脚本的方法:

脚本

@echo off

ECHO Set working directory
pushd %~dp0

setlocal ENABLEDELAYEDEXPANSION

set cnt=1

for %%i in (*.csv) do (
 if !cnt!==1 (
 for /f "delims=" %%j in ('type "%%i"') do echo %%j >> combined.csv
      ) else if %%i NEQ combined.csv (
  for /f "skip=1 delims=" %%j in ('type "%%i"') do echo %%j >>            combined.csv
  )
REM increment count by 1
  set /a cnt+=1
)'

这就像一个魅力,还剥离了工作目录中其他 2 个 csv 文件的标题。

脚本现在输出 combined.csv,这很好,但我希望脚本输出 NL2 ddmmyyyy.csv

我有并且似乎无法弄清楚的问题是如何使输出文件的名称递增和基于日期。

【问题讨论】:

    标签: csv cmd merge


    【解决方案1】:

    代码可以从 DATE 变量中解析日期元素。日期的格式会因地区而异。我的设置为 YYYY-MM-DD,但您的可能不同。

    M:>echo %DATE%
    2016-01-27
    
     8:23:58.28 \\SWPDCENDWXTK01\D$  M:\DW_Devl\Paul\phs_dmx_config\bin
    M:>SET FNDATE=%DATE:~8,2%%DATE:~5,2%%DATE:~0,4%
    
     8:24:08.54 \\SWPDCENDWXTK01\D$  M:\DW_Devl\Paul\phs_dmx_config\bin
    M:>ECHO %FNDATE%
    27012016
    

    在循环内部,设置一个变量并将其用于输出。

    SET COMBO_FILENAME=NL!cnt!%FNDATE%.csv
    ECHO %%j >>!COMBO_FILENAME!
    

    【讨论】:

    • Cheers Liturgist,这帮助我解决了这个问题。
    猜你喜欢
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 2014-07-21
    • 2016-09-22
    • 2022-07-06
    • 2019-08-05
    相关资源
    最近更新 更多