通过cmd组合csv

时间:2016-01-27 09:34:50

标签: csv cmd merge

我目前正致力于组合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

我遇到的问题似乎无法解决如何使输出文件的名称增量和基于日期的问题。

1 个答案:

答案 0 :(得分:0)

代码可以解析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!