2011-02-21 7 views
2

for 루프에서 폴더의 이름을 가져 오는 방법. 나는 다음과 같은 디렉토리 구조배치 파일의 폴더 이름

c:\Main\**FolderName1**\FolderName3\somefile.txt 
c:\Main\**FolderName2**\FolderName4\somefile1.txt 

을하고 난 루프에 대한 내부의 폴더 이름 1폴더 이름 2의 이름을 싶어.

내가 지금 뭐하는 거지 방법이 있습니다 :

set "errfolderpath=C:\Main\" 
FOR /D /R %errfolderpath% %%K in (.\*) DO (
    SET folderName=%%~nK 
    echo foldername=!folderName! 
) 

난 그냥 폴더 이름 2폴더 이름 1의 이름을 원하는 반면, 나는 그것을 모든 하위 폴더의 이름을 인쇄하고 위의 프로그램을 실행

및 나머지 폴더는 반복하지 않습니다.

나는 분명히 할 수 있었으면 좋겠다. 감사합니다. .

+0

을 당신은 좀 더 상세히 포함해야합니다 - 당신이 통해 반복되는 정확히 무엇을? – Justin

+0

질문 세부 사항을 업데이트했습니다. 희망이 도움이 될 – Sahil

답변

0

매개 변수는 시작 폴더와 재귀 검색을 모두 지정하지만 앞뒤에만 필요합니다.

그래서, 그냥이 같은 파일 마스크 루트 폴더를 사용

set "errfolderpath=C:\Main\" 
FOR /D %%K in ("%errfolderpath%*") DO (
    SET folderName=%%~nK 
    echo foldername=!folderName! 
) 
+0

그것이 효과가 있습니다. 고마워요 톤 – Sahil

+0

이것은 위대한 작품. 내 디렉토리를 제외하고. 예를 들어 Waynes.World와 Waynes라는 단어 만 골라냅니다. 어떤 제안? – theB3RV

+0

@ theB3RV :'~ n'은'~ nx'로 변경해야합니다. 이 스크립트를 예로 들면, 두번째 SET 명령은'SET folderName = %% ~ nxK'처럼 보일 것입니다. 이러한'~'- 변경자에 관해서는'FOR /? '에서 더 읽을 수 있습니다. –