단일 디렉토리로 파일 복사


21

Windows 컴퓨터에서 xcopy를 사용하여 확장자가 .png 인 모든 파일을 단일 디렉토리로 끌어 내고 싶습니다.

나는 시도 xcopy C:\folder\*.png /s C:\png\했지만 \ 폴더 안에 하위 디렉토리를 유지하고있다 (예 : C : \ png, C : \ png \ a \ b \ c \ img.png). C : \ folder에있는 디렉토리 구조를 유지하지 않고 C : \ png 안에있는 모든 .png를 원합니다.


답변:


39

이것은 좋은 오래된 것으로 할 수 있습니다 for:

for /r C:\Folder %f in (*.png) do @copy "%f" C:\png

멋진 것은 없습니다.


효과가있다! 무엇을 설명해야 %f합니까?
bobobobo

루프 변수입니다.
Joey

3
이것은 저에게 효과가 없었습니다 f" was unexpected at this time. 효과가 있습니다. 작동 %f하도록 변경 %%f그러나 배치 파일에서 이것을 실행 했습니다. 배치 프로그램이 아닌 명령 줄에서 FOR 명령을 사용하는 경우 %% G 대신 % G 만 사용하십시오. ss64.com/nt/for.html
ta.speot.is는

1
음 그것은 당신이 인용 한대로 예상됩니다. 당신의 혼란은 어디에서 왔습니까?
Joey

1
@ kayleeFrye_onDeck : 내가 아는 한 특별한 변수는 없습니다. 마음에 떠오르는 유일한 것은에 익숙하지 않은 사람들이 for서로 다른 두 가지 d에 대해 혼란 스러울 수 있다는 것 %~dd입니다. for문서 피하기 혼란 변수에 대한 문자를 대문자로 사용하도록 제안하지만, 대체 여전히 변수 이름에서 명확하게 구별, 나는 생각한다.
Joey

1

cygwin을 설치 한 경우 찾기 작업이됩니다.

cp `find /cygdrive/c/folder/* -name '*png'` /cygdrive/c/png/

(파일 이름에 공백이 있으면 문제가 발생 find하지만 모든 상황에서 작동 하는 명령의 변형을 찾을 수 있습니다 )

Vista, 2003 또는 2008을 실행하는 경우 유연성이 떨어지지 만 여전히 유용한 "파일"은 친구입니다. 다음과 같은 것 :

FORFILES /P c:\folder\ /M *.png /S /C "cmd /c copy @file c:\png\"

참고 : 위의 명령 중 하나를 테스트하지는 않았지만 이론적으로는 작동해야합니다 ...


+1은 FORFILES 명령이 작동하는지 확인했습니다. 나는 그것을 두 번 실행하고 두 번째 시간 w / out 프롬프트를 복사 했으므로 중복을 발견하면 덮어 씁니다.
hyperslug
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.