2012-07-30 2 views
7

D : \ images에있는 모든 * .tif 파일 (여기에 임의로 이름이 지정된 하위 폴더)을 d : \ all에 복사하는 일괄 처리 스크립트를 만들려고했습니다.하위 폴더에서 한 폴더로 Windows 일괄 복사 파일

xcopy D:\Downloads\*.TIF D:\temp\ /s 

작동하지만 모든 폴더 트리로 복사합니다. 나는 다른 키를 사용하려했지만 그 키는 작동하지 않는다. 도움 주셔서 감사합니다!

답변

26

FOR은 (는) 친구입니다. /R 옵션과 %~nx 변수 대체에 대해 HELP FOR을 읽으십시오. 이 간단한 코드를 사용해보십시오.

pushd d:\downloads 
    for /r %%a in (*.tif) do (
    echo COPY "%%a" "d:\temp\%%~nxa" 
    ) 
    popd 

주의 깊게 결과를보고 ECHO 명령을 제거하십시오.

당신은 오류, 중복 된 이름, 가장자리의 경우, 예약 문자, 경쟁 조건, 우주 이벤트와 이름에 대처하기 위해 코드를 수정해야합니다

...

+0

감사합니다. 필요한 부분입니다. –

+1

파일 패턴을 쉼표로 구분하십시오! .bat 파일을 만들고'% 1'과'd : \ downloads'을'% 2'을 사용하여'd : \ temp \ %% ~ nxa'로 대체하십시오. 그런 다음 재사용 할 수있는 명령을 갖게됩니다. 모든 컴퓨터에서 사용할 수 있도록 Dropbox \ bin을 PATH에 넣습니다. 큰 박쥐 스크립트, 감사합니다! – caiohamamura

0

당신은 또한 XXCOPY 프리웨어를 사용할 수 있습니다. XCOPY와 같이 작동하지만/SG 매개 변수를 사용하면 하위 디렉토리를 병합합니다. 그것을 사용하는 방법을 참조하십시오 here.

2
pushd D:\Source 
    for /r %%a in (*.?*) do (
     MOVE "%%a" "D:\Destination folder\%%~nxa" 
    ) 
popd 
+0

이렇게하면 하위 폴더에서 모든 파일을 가져 와서 대상 폴더로 이동하게됩니다. 복사로 이동을 변경할 수도 있습니다 – Stur

3

예를 들어 Windows 파일 탐색기를 사용하여 검색 한 파일. * .gif, 검색 창에 파일이있어 편집 => 모두 선택, 복사 한 다음 원하는 폴더에 붙여 넣기. 이렇게하면 모든 하위 디렉토리에있는 모든 gif 파일이 단일 폴더로 복사됩니다. 많은 수의 파일의 경우 응답하지 않는 경우가 있지만 때때로 제대로 작동합니다.

+0

실제로이 작업을 수행하는 데는 매우 쉬운 방법입니다! :) – user3640967

관련 문제