상위 디렉토리를 제외한 하위 디렉토리로 파일을 일괄 이동합니다.

상위 디렉토리를 제외한 하위 디렉토리로 파일을 일괄 이동합니다.

상위 폴더의 모든 하위 디렉터리에 복사하고 싶은 *otf 파일이 있습니다. 이것이 내가 시도한 것입니다.

for /R %%x in (.) do copy "file.otf" "%%x"

이는 대부분의 경우 작동하지만 상위 폴더에 복사본도 남깁니다. 일괄 처리가 모든 하위 디렉터리에만 복사되도록 하는 문제를 해결하고 싶습니다.

답변1

귀하의 코드가 Microsoft Windows [버전 10.0.17134.648]에서 작동하도록 할 수 없습니다. 다음 코드는 작동합니다.

시험:

for /f "tokens=*" %%x in ('dir /b /s /ad "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\"') do echo copy /y "file.otf" to "%%x\"

복사:

for /f "tokens=*" %%x in ('dir /b /s /ad "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\"') do copy /y "file.otf" "%%x\"

하위 디렉터리에서 file.otf를 삭제합니다.

for /f "tokens=*" %%x in ('dir /b /s /ad "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\"') do del /q "%%x\file.otf"

tokens=*는 경로/파일 이름의 공백을 처리합니다.

"tokens=*"

dir /b /s /ad는 파일을 파일이 아닌 디렉터리에 복사합니다. /ad file.otr이 없으면 디렉터리의 모든 파일을 덮어씁니다.걱정된다면 copy /y 대신 copy를 사용하세요.

dir /b /s /ad

copy /y는 허가를 요청하지 않고 file.otr을 덮어씁니다. 작동하는 것에 만족하기 전에 몇 번 시도해야 합니다.

copy /y

코드를 "수정"하는 대신 상위 디렉터리에서 file.otr을 삭제하는 것이 어떨까요?

del /q file.otr

관련 정보