152.000 개의 문서 폴더 내 네트워크 경로에서 검색하려고합니다. 검색 할 파일 목록은 1500 개입니다. 5 시간 후에는 50 개의 문서 만 찾았습니다.
이 스크립트는 나를 도운 다른 사용자가 작성했습니다. 속도를 높일 수있는 방법이 있는지 확인하려고합니다.
@echo off
for /f "usebackq delims=" %%a in ("C:\cleanup\addr.txt") do (
for /r "Z:\Attachments\PDF\" %%b in ("%%a*") do xcopy "%%b" "C:\cleanup\XMLFix\%%~pb" /s
)
pause
이 스크립트는 일치하는 항목을 찾을 때까지 152.000 문서를 검색하는 첫 번째 파일 이름을 사용하고 두 번째 문서에 대해 152.000 문서를 다시 검색합니다.
버퍼에 모든 파일 이름을 저장하고 152.000 문서를 한 번만 검색하도록 작성할 수 있습니까?
이것은 테스트되지 않았지만 작동 할 것이라고 생각하며 상대적으로 빠릅니다. 파일 당 6 분 정도 걸리는 현재 방법을 고려할 때이 방법을 완료하는 데 10 분도 걸리지 않을 것으로 예상됩니다. 전체 폴더 계층 구조를 한 번만 읽은 다음 한 번에 모든 addr.txt 항목에 대해 결과를 확인합니다.
@echo off
pushd "c:\cleanup"
:: Prepare addr.txt to be used as /g option for FINDSTR
(for /f "usebackq delims=" %%F in ("addr.txt") do echo \\%%~nxF) >addr.txt.mod
:: Get a list of full paths to all files in hierarchy
dir /b /a-d /s "z:\attachments\pdf\*" >files.txt
:: Match files in files.txt against files in addr.txt.mod
for /f "delims=" %%F in ('findstr /ileg:addr.txt.mod files.txt') do (
REM %%F contains the full path of a matching file
xcopy "%%F" "C:\cleanup\XMLFix%%~pF"
)
:: Delete temp files
del addr.txt.mod files.txt
popd
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다