我目前正致力于组合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 。
我遇到的问题似乎无法解决如何使输出文件的名称增量和基于日期的问题。
答案 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!