2008-10-09 7 views
4

파일이있는 여러 하위 디렉토리가있는 디렉토리가 있습니다.
하위 디렉토리의 모든 파일을 새 위치로 복사하려면 어떻게해야합니까?
Windows 배치를 사용하여 파일을 복사하려면 어떻게합니까?

편집 :

for /D %S IN ("src\*.*") DO @COPY "%S\" "dest\" 

감사 : 나는 디렉토리, 그냥 파일을 복사하지 않으 ...이 XP에 여전히으로

, 나는 아래의 솔루션을 선택했다!

답변

6

f를 %% 할 수 있습니다. 디렉터리 구조를 원하지 않는다는 편집 내용으로 다음과 같은 것을 사용하려고합니다.

for /F "usebackq" %s IN (`DIR /B /S /A-D SrcDir`) DO @(
    XCOPY %s DestDir\%~nxs 
) 
+0

Ahhh는 나를 대담하게 오래 길게 만든다! 찾기 SrcDir -type f -exec cp {} 대상 디렉토리 \; – h4unt3r

+0

따옴표를 잊지 마십시오. – zirbel

3

Xcopy 명령이 도움이됩니다.

XCOPY /E SrcDir\*.* DestDir\ 

아니면 SRCDIR에있는 파일, 바로 서브 디렉토리 중 하나를 원하지 않는 경우, 당신은 명령에 대한과 함께 XCOPY를 사용할 수 있습니다 당신은을 유지하려면

FOR /D %s IN (SrcDir\*) DO @XCOPY /E %s DestDir\%~ns\ 
0

타단에 동일한 폴더 구조뿐만 XCOPY 간단

XCOPY 음의 C : \ 오래 \ * D :. \ 새로운 \/s

빈 디렉터리를 복사하려면/s 대신/e를 사용하십시오.

2

robocopy "c:\source" "c:\destination" /E

+0

RoboCopy는 뛰어난 유틸리티이며 매우 강력합니다. 이것이 중요한 업무라면, robocopy가 주요 옵션 일 것입니다. –

+0

또한 xcopy는 Vista에서 robocopy에 찬성하여 더 이상 사용되지 않습니다 –

+0

하하하하. xcopy가 언제 어디에서나 너무 걱정되는 것은 아닙니다. 여전히 좋은 지적입니다. –

1

내가 제대로 이해하면 큰 디렉토리 트리를 가지고 있고 하나의 디렉토리에 있어야 그 안에있는 모든 파일을 원한다. 맞습니다 경우에, 나는 두 줄에서 작업을 수행 할 수 있습니다

dir /s /b "yourSourceDirectoryTreeHere" > filelist.txt 
for /f %f in (filelist.txt) do @copy %f "yourDestinationDirHere" 

를 명령 줄 변경 % f를 대 배치 파일에서 확인

+0

솔루션을 좋아하지만 임시 파일이 없으면 한 줄로 처리합니다. 감사! – Nescio

+0

당신은 나무 전체를합니까? 나는 그랬다고 생각하지는 않았지만 나는 그것을 시도해야 할 것 같아요. –

+0

아래의 Eric의 대답은 임시 파일이없는 내 두 줄 명령의 한 줄 버전으로 보입니다. –

0
for /D %S IN ("src\*.*") DO @COPY "%S\" "dest\" 
+0

그게 잘 작동하는 경우. 하지만 src 디렉토리 아래에 원하는 파일이있는 경우, 명령에서 알 수없는 한 그 명령을 얻을 수 없습니다. 요구 사항을 자세히 이해 한 후에 다른 답변을 추가했습니다. –