2012-03-05 4 views
0

*.wav 수십만 개의 파일이 수백 개의 폴더에 분산되어 있습니다. 모든 파일을 한 수준 위로 이동하려면 명령 줄을 얻는 데 도움이 필요합니다. 이러한 모든 파일의 디렉토리 구조는 동일하지만 폴더의 이름은 약간 다를 수 :MANY 폴더의 모든 파일을 한 수준 위로 이동 - 명령 줄

Z :. \ 오디오 \ 레벨 * \ 이야기 * \ VOCAB \ * WAV 모든 파일이

VOCAB 폴더에있는, 그리고 나는 story* 폴더로 이동해야합니다

Z :. \ 오디오 \ 레벨 * \ 이야기 * \ * WAV

각 개별 폴더에서 move 명령을 실행하여 명령 줄에서 수행 할 수 있지만 전체 디렉토리 내의 모든 파일에서 재귀 적으로 실행할 수있는 방법이 있습니까? 위치 경로에 와일드 카드를 사용할 수 있습니까?

메모 : 레벨 * 및 스토리 *는 숫자 01-24입니다.
Windows XP Professional을 사용 중입니다.

도움을 주셔서 감사합니다.

for /r %F in (*.wav) do move %F %~pF\.. 

난에서 시작하는 것이 좋습니다 참고로 (내가하지 '코드'꽤 괜찮 ... 않았다 특히 경우) 명령 프롬프트에서 for /?를 참조하십시오

답변

0

다른 포럼 (http://www.computerhope.com/forum/index.php/topic,98046.0/all.html)에서 비슷한 질문을 찾을 수 있습니다.

@echo off 
set thisdir=%cd% 
for /f "delims=" %%A in ('dir /b /ad') do (
    cd /d "%%~dpnA" 
    for /f "delims=" %%B in ('dir /b /ad') do (
     echo Level 2 Directory: %%~dpnB 
     cd /d "%%~dpnB" 
     for /f "delims=" %%C in ('dir /b /ad') do (
      echo Level 3 Directory: %%~dpnC 
      cd /d "%%~dpnC" 
      move *.* ..\ 
      cd .. 
      rd "%%~dpnC" 
     ) 
     cd .. 
    ) 
    cd.. 
) 
cd /d "%thisdir% 
+0

고마워요 !! 나는 당신이 참조한 포럼을 돌아보기 전에이 코드로 조금 어려움을 겪었다. 아주 작은 코드를 사용하여 매우 작고 단순한 배치 파일을 만들었습니다.'@echo off/f %% P in ('dir/b/od')는 %% P를 복사합니다./f %% P in (dir/b/od ')의 rmdir/s/q %% P \ VOCAB'에 대해 \ VOCAB \ *. *. \ %% P \ REM을 실행하고 각'Level * '폴더. 이 폴더 중 24 개 폴더 만 있으므로 아주 간단한 작업이었고 트릭을 만들었습니다! 다시 한 번 감사드립니다! –

1

같은 것을 시도 \Audio 디렉토리 안에 있습니다.

+0

나는이 같은 솔루션에 찬성 해요 : 자신의 코드의 일부를 수정

, 여기에 (모든 그것을 해방 전에 작은 하위 집합에보십시오) 트릭을 할 수있는 배치 파일 스크립트입니다 얼마나 단순한가! 그러나이 명령을 실행하면 레벨을 위로 이동하는 대신 모든 파일을 시작 디렉토리에 저장합니다. 어떤 방법으로'% ~ pF' 코드를 사용하여 파일을 한 레벨 위로 올릴 수 있습니까? 아니면'\ ..'이해야 할 일인가? (죄송합니다.'\ ..'에 익숙하지 않습니다.) –

+0

예 '..'는 디렉토리에 있으며 디렉토리에있는 디렉토리를 나타냅니다. – contributor

관련 문제