배치 스크립트: 비슷한 이름을 가진 해당 폴더로 파일 이동

배치 스크립트: 비슷한 이름을 가진 해당 폴더로 파일 이동

저는 종이 없는 진료를 시작하고 모든 환자 데이터를 전자적으로 저장하려고 합니다. 이미 8000개의 폴더(1 - 8000)를 만들었으며 이제 약 16000개의 .pdf 파일을 해당 폴더로 이동해야 합니다. 예: "202 Medical Aid Card", "202 Dr Referral", "202 Sick Note"를 다음 폴더로 이동해야 합니다. 폴더 "202". 모든 파일은 하나의 폴더에 저장됩니다.

미리 감사드립니다.

답변1

귀하의 상황이저것간단하다면 다음과 유사한 운영 체제 명령을 계속 실행해야 합니다.

MOVE 202* 202\

등등.

답변2

이 질문에 대한 다른 현재 답변을 확장하면 다음과 같습니다.

  1. 일반 텍스트 편집기(예: Windows 메모장)에서 새 텍스트 문서를 열고 다음 배치 지침을 복사합니다.

    FOR /L %%G IN (1,1,8000) DO (
        MOVE ".\%%G *" ".\%%G\"
        )
    
  2. 이 파일을 ex. sort_files.bat.

  3. .bat파일을 정렬하려는 파일과 동일한 폴더에 넣으세요.

  4. sort_files.bat두 번 클릭하거나 명령줄에서 실행하여 실행합니다 .

주의사항

  • .\%%G *예를 들어 파일 이름 형식을 가정합니다. 202 Medical Aid Card. 공백(예: )을 놓치면 .\%%G*파일이 올바르게 정렬되지 않고 다음과 같이 표시됩니다.거대한두통(그러니 이러지 마세요! =P).

  • .\%%G\기존 폴더가 파일과 동일한 디렉터리에 있다고 가정합니다. 그렇지 않은 경우 .폴더 디렉터리의 실제 경로(예 C:\path\to\folder\directory\%%G\: )로 바꾸세요.

  • 표현식에서 (1,1,8000)마지막 값(예: 8000)은 총 처리되는 루프 수를 결정합니다. 에 커밋하기 전에 처음에 배치 파일을 테스트하고 결과를 확인하기 위해 (1,1,8000)관리 가능한 수(예: )로 줄이는 것을 고려할 수 있습니다 .(1,1,10)(1,1,8000)


노트

  • %%G루프를 통해 계산하는 데 사용되는 배치 변수입니다. 루프가 처리됨에 따라 숫자로 대체됩니다. 그래서 MOVE ".\%%G *" ".\%%G\"전직이됩니다. MOVE ".\1 *" ".\1\".

  • 명령에서 MOVE ".\%%G *" ".\%%G\":

    • 따옴표는 기술적으로 경로에 공백(예: ".\%%G *")이 포함되어 있지만 일관성을 위해 소스 경로( .\%%G *)와 대상 경로( .\%%G\) 모두에 사용되는 경우에만 필요합니다.

    • ."현재 디렉토리"를 줄여서 표현한 것입니다.

    • *와일드카드입니다. 그래서 예. " (예: )로 시작하고 그 뒤에 공백과 기타 문자( ) .\%%G *가 오는 현재 디렉터리의 모든 파일 "로 변환됩니다.%%G1*


참고자료

관련 정보