2012-10-13 4 views
0

1 열의 한 위치에서 모든 폴더 이름에 대해 스프레드 시트를 만들 수있는 배치 파일을 찾고있었습니다. 인접한 열의 해당 폴더에있는 .xxx 파일에 결국 보고서를 보내고 싶습니다. 첫 번째 열과 각 행에 폴더 이름이 있습니다. 해당 폴더의 .xxx 파일 이름스프레드 시트의 폴더 및 파일 이름

예 : folder_main은 F1, F2를 가지고, 등등 각 폴더 g1.xx, g2.xxx을 가지고 있으며, 그래서 에 이렇게 배치 파일 또는 스크립트를 작성 좀 도와 주 시겠어요

column1  column 2  column 3 ............ 
f1   g1.xxx  g2.xxx ..... 
f2   h1.xxx....... 

보여 주어야보고 가정 vb이 기능을 수행합니다. 나는 수천 개의 폴더를 가지고있다.

+0

텍스트 파일이나 CSV를 생성 한 다음 스프레드 시트로 쉽게 가져올 수 있습니다. 너 뭐 해봤 니? 어떤 문제가 있었습니까? –

답변

0

다음은 CSV 스타일 출력을 만드는 시작점입니다. 스프레드 시트 프로그램에서 열 수 있어야합니다.

@ECHO OFF 

SETLOCAL EnableDelayedExpansion 

FOR /F "delims=" %%A IN ('DIR /AD /B 2^> NUL') DO (
    SET line="%%A" 
    FOR /F "delims=" %%B IN ('DIR %%A\*.xxx /B 2^> NUL') DO SET line=!line!,"%%B" 
    ECHO !line! 
) 

일괄 스크립팅에 대해 얼마나 알고 있는지 알지 못하므로 지금 당장 그대로 두겠습니다. 그러나 명확하지 않은 것이 있으면 언제든지 물어보십시오.

편집 :
EnableDelayedExpansion은 (아래 참조) ! 작업을 수행하는 데 필요합니다.

첫 번째 FOR -line은 현재 디렉토리의 모든 하위 디렉토리를 반복하고 모든 가능한 오류 메시지를 표시합니다. 마지막 줄에있는 DO () 사이의 항목은 발견 된 각 하위 디렉토리에 대해 실행됩니다.

line -variable은 두 번째 파일 인 FOR -loop이 완료되면 모든 파일을 보관합니다. 하위 디렉토리의 이름, 즉 CSV 출력의 첫 번째 열로 초기화됩니다.

두 번째 FOR -loop은 첫 번째 루프에서 찾은 하위 디렉토리에서 xxx 확장자를 가진 모든 파일을 찾은 다음 가능한 오류 메시지를 다시 버립니다. SET은 파일 이름을 서로 추가합니다.

익숙한 % 대신 !이 사용됩니다. 지연 확장을 코드에 적용합니다 (명령 행에서이 실행에 대한 자세한 정보가 필요하면 SET /?).

디렉토리 구조를 더 자세히 살펴 보려면 첫 번째 루프의 DIR 명령에 /S을 추가해야합니다 (예 : 'DIR /AD /B /S 2^> NUL'.

+0

배치 파일에 대해 많이 알지 못합니다. 코드가 어떻게 작동하는지 조금 설명해 주시겠습니까? 하위 폴더도 살펴볼 수 있습니까? – user1452157

관련 문제