2015-06-17 42 views
0

我有一個工作的Windows批處理腳本,它將具有相同頭文件的多個CSV文件組合成一個大的CSV文件。這是因爲如下:如何將最終輸出.csv文件的名稱設置爲文件夾的名稱?

@echo off 

ECHO Set working directory 
pushd %~dp0 

ECHO Deleting existing combined file 
del combined.csv 

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 
) 
    set /a cnt+=1 
) 

我想要的輸出文件同名的文件夾名稱,而不是combined.csv

例如,如果文件夾的名稱是ABC,則輸出組合的CSV文件應該是ABC.csv

回答

0
@echo off 
    setlocal enableextensions disabledelayedexpansion  

    pushd "%~dp0" 

    set "first=1" 
    for %%a in ("%~dp0\.") do (
     del "%%~nxa.csv" 2>nul 
     (for %%i in (*.csv) do (
      if /i not "%%~nxi"=="%%~nxa.csv" if defined first (
       set "first=" 
       type "%%~fi" 
      ) else (
       (for /f "skip=1 usebackq delims=" %%j in ("%%~fi") do echo(%%j) 
      ) 
     )) > "%%~fa\%%~nxa.csv" 
    )