2015-01-29 2 views
0

나는 aprox가 포함 된 디렉토리가 있습니다. 레벨, 압력, 볼륨 등과 같은 측정 데이터가 포함 된 1500 개의 CSV 파일 측정 데이터는 매 측정마다 매시마다 내보내집니다. 그래서 Level의 생성 된 파일 이름은 Levelxx.csv가됩니다. 여기서 xx의 범위는 00-23입니다. 동일한 방법이 볼륨 및 압력과 volume00.csv - volume23.csv와 같은 다른 모든 측정에 적용됩니다. level-day.csv, volume-day.csv 등과 같이 주어진 측정의 24 개 파일을 모두 하나로 병합하고 싶습니다.부분적으로 같은 파일 이름의 CSV 파일 병합

"copy/b level * .csv level-day.csv/y"명령은 한 세트에서 잘 작동하지만 24 시간마다 파일을 가지고있는 측정 값을 더 많이 측정하는 방법은 무엇입니까? 파일 이름의 유일한 공통 분모는 00-23을 구성하는 xx입니다. 미리 감사드립니다.

답변

0

FOR 루프에서 속성 이름의 정적 목록을 간단하게 반복 할 수 있습니다. 복수 단어 이름은 따옴표로 묶어야합니다.

@echo off 
for %%A in (
    level 
    pressure 
    volume 
    "multiword name" 
    etc. 
) do copy /b %%A??.csv %%a-day.csv /y 

또는 속성 이름을 동적으로 검색 할 수 있습니다.

@echo off 
setlocal enableDelayedExpansion 
for %%A in (*00.csv) do (
    set "prop=%%~nA" 
    set "prop=!prop:~0,-2!" 
    copy /b "!prop!??.csv" "!prop!-day.csv" 
) 

것은 시간 00 가끔 누락 될 수 있습니다 경우 :

@echo off 
setlocal enableDelayedExpansion 

:: Delete any existing -day files 
delete *-day??.csv 2>nul 

for /f "eol=: delims=" %%A in (
    'dir /b /a-d *.csv^|findstr "[^0-9][0-9][0-9]\.csv$"' 
) do (
    set "prop=%%~nA" 
    set "prop=!prop:~0,-2!" 
    if not exist "!prop!-day.csv" copy /b "!prop!??.csv" "!prop!-day.csv" 
) 
항상 모든 속성을 가정

시간 00 파일이

관련 문제