디렉토리의 하위 디렉토리를 살펴보고 특정 확장자의 파일을 새 폴더에 복사할 수 있습니까?

디렉토리의 하위 디렉토리를 살펴보고 특정 확장자의 파일을 새 폴더에 복사할 수 있습니까?

초보자입니다. Windows에서는 디렉터리의 하위 디렉터리를 통해 특정 확장자를 가진 모든 파일을 검색하고 이를 새 디렉터리로 이동하는 터미널 스크립트가 작동하지 않는 것 같습니다.

find ./ -name '*.xlsx' -exec cp -prv '{}' \Documents\...' ";"

MATLAB을 사용하거나 Windows 스크립트에서 다른 방법을 사용하여 동일한 작업을 수행할 수 있는지 궁금합니다. 나의 궁극적인 목표는 이러한 모든 xlsx 파일의 데이터를 하나의 파일로 통합하는 것입니다. 미리 도움을 주셔서 감사합니다.

답변1

cmd.exe에서 디렉터리를 반복하려면:

for /r "C:\Your\Directory" %A in (*.xlsx) do (move /y "%A" "C:\New\Directory\%~nxA")

/rin 은 FOR주어진 디렉토리에 루트가 있는 모든 파일을 반복합니다. /yin은 파일 move이동이 괜찮은지 묻는 메시지를 표시하지 않습니다. 공백이 있는 경우 파일/디렉터리 경로 주위에 따옴표를 사용하는 것이 가장 좋습니다. 기본적으로 하위 폴더를 반복합니다.

참조:FOR 루프 명령

일괄 솔루션을 선호한다면 다음과 같은 변수로 설정하는 것을 선호합니다.

@echo off

set "old=C:\Your\Directory"
set "new=C:\New\Directory"

for /r "%old%" %%A in (*.xlsx) do (
    move /y "%%A" "%new%\%%~nxA"
)

pause

(제 생각에는) 일괄 처리와 일반 명령줄을 비교하는 주요 차이점은 동일한 파일에서 경로를 여러 번 변경할 필요 없이 돌아가서 변수를 편집할 수 있으면 조정하기가 조금 더 쉽다는 것입니다. 또한 매개변수가 배치 파일에서 %A으로 변경된다는 점에 유의하세요.%%A

관련 정보