FTP 다운로드 디 렉 터 리,즉 FTP 명령 으로 자동 으로 다운로드 되 는 bat 파일 을 사용 합 니 다.

FTP 는 디 렉 터 리 다운 로드 를 지원 하지 않 지만 FTP 명령 은 mget 명령 을 제공 하여 다 중 파일 다운 로드 를 허용 하지만 다운로드 할 때마다 확인 해 야 하 며 자동 으로 완료 할 수 없습니다.본 고 는 디 렉 터 리 다운로드 의 목적 을 달성 하기 위해 일괄 처 리 를 사용 하고 FTP 의 관련 명령 과 결합 하여 대량 파일 의 다운 로드 를 실현 하 는 것 을 소개 한다.
대체적인 생각 은 다음 과 같다.
ftp -s:filename hosts >result.txt 스 크 립 트 를 실행 하고 결 과 를 result.txt 스 크 립 트 내용 으로 출력 합 니 다.예 를 들 어 cd my dir ls by my dir 명령 을 으로 표시 한 다음 일괄 처리 분석 result.txt 에서 150 Opening ASCII mode data connection for file list.의 다음 줄 은 226 까지 계산 합 니 다. Transfer complete 는 다운로드 할 내용 다음 일괄 처리 로 ftp 스 크 립 트 를 추가 하고 get 명령 으로 하나씩 다운로드 합 니 다.
그러나 실제 과정 에서 FTP 스 크 립 트 에서 get 을 사용 하 는 데 문제 가 있 고 매개 변수 오류 가 발생 하여 사용 할 수 없습니다.
ftp 도움말 봤 어 요.ftp.-?
G:>ftp -? Transfers files to and from a computer running an FTP server service (sometimes called a daemon). Ftp can be used interactively. FTP [-v] [-d] [-i] [-n] [-g] [-s:filename] [-a] [-w:windowsize] [-A] [host]   -v             Suppresses display of remote server responses.   -n             Suppresses auto-login upon initial connection.   -i             Turns off interactive prompting during multiple file                  transfers.   -d             Enables debugging.   -g             Disables filename globbing (see GLOB command).   -s:filename    Specifies a text file containing FTP commands; the                  commands will automatically run after FTP starts.   -a             Use any local interface when binding data connection.   -A             login as anonymous.   -w:buffersize  Overrides the default transfer buffer size of 4096.   host           Specifies the host name or IP address of the remote                  host to connect to. Notes:   - mget and mput commands take y/n/q for yes/no/quit.   - Use Control-C to abort commands.
-i 인 자 를 발견 하면 mget 의 힌트 를 제거 할 수 있 습 니 다.테스트 를 통 해 다음 과 같은 스 크 립 트 를 실 현 했 습 니 다.(익명 으로 로그 인 하지 않 으 면 로그 인 스 크 립 트 를 수정 할 수 있 습 니 다)
echo cd autoruns>ftp.txt echo mget *>>ftp.txt echo bye>>ftp.txt ftp -i -A -s:ftp.txt 10.1.103.10
 그러나 이것 은 디 렉 터 리 에 있 는 파일 만 다운로드 한 것 입 니 다.하위 디 렉 터 리 가 있 으 면 dir 명령 으로 출력 하고 텍스트 로 출력 하 며 find 로 디 렉 터 리 를 추출 해 야 합 니 다.예 를 들 어:
echo cd autoruns>ftp.txt echo dir>>ftp.txt echo bye>>ftp.txt ftp -A -s:ftp.txt 10.1.103.10 |find "">result.txt for /f "tokens=2,3*" %%i in (result.txt) do echo %%k
하위 폴 더 가 있 으 면 깊이 작성 해 야 합 니 다.
테스트 를 통 해 다음 스 크 립 트 를 실행 합 니 다.환경 WINXP SP2 를 실행 합 니 다.다른 시스템 에서 테스트 한 적 이 없습니다.
1.주요 스 크 립 트 ftpget.bat,이전 4 개 변수의 관련 정 보 를 변경 합 니 다.이 스 크 립 트 는 MakeTree.bat 를 호출 합 니 다.2 를 참조 하 십시오.
rem FTP 서버 주소 set host=10.1.103.10 rem FTP 로그 인 이름,익명 으로 변경 하지 않 으 면 set user=anonymous rem FTP 로그 인 비밀번호,익명 으로 set 를 바 꾸 지 않 으 면 pass=123456 rem 다운로드 할 FTP 디 렉 터 리,하위 디 렉 터 리 를 다운로드 하면 set dirname=디 렉 터 리 1 하위 디 렉 터 리 set homedir=%cd% rem FTP 디 렉 터 리 구조 생 성 del tree.txt start /w cmd /c makeTree %dirname% 0 del result*.txt for /f "delims=/" %%i in (tree.txt) do ( rem dirname 의 모든 파일 remi 가 져 오기 ============================= cd %homedir% md %%i cd /d %%i echo %user%>ftp.txt echo %pass%>>ftp.txt echo cd %%i>>ftp.txt rem mget *.* 모든 파일 을 다운로드 하지만 확장자 가 없 는 파일 은 다운로드 할 수 없습니다. rem 하면,만약,만약... * 모든 파일 을 다운로드 할 수 있 지만 하위 디 렉 터 리 파일 도 다운로드 합 니 다 echo mget *.*>>ftp.txt echo bye>>ftp.txt ftp -i -A -s:ftp.txt %host% del ftp.txt rem ============================== ) cd %homedir% del tree.txt
2,maketree.bat,FTP 디 렉 터 리 트 리 생 성
rem FTP 디 렉 터 리 구조 생 성 remi 호출 방법 maketree dir1dir2 n (n>=1) rem %1 == dir1dir2 rem %2 == n set /a treetime=%2+1 echo %1 >>tree.txt echo %user% >ftp%treetime%.txt echo %pass% >>ftp%treetime%.txt echo cd %1 >>ftp%treetime%.txt echo dir >>ftp%treetime%.txt echo bye >>ftp%treetime%.txt ftp -A -s:ftp%treetime%.txt %host% |find "">result%treetime%.txt for /f "tokens=2,3*" %%i in (result%treetime%.txt) do (start /w cmd /c Maketree.bat %1%%k %treetime%) del result%treetime%.txt del ftp%treetime%.txt
 
비록 실현 되 었 지만 작은 문제 가 있 습 니 다.바로 mget*.*확장자 가 없 는 프로그램 을 다운로드 할 수 없습니다.mget*를 사용 하면 모든 파일 을 다운로드 할 수 있 지만 하위 디 렉 터 리 의 파일 도 다운로드 합 니 다.get 이 FTP 스 크 립 트 에서 실 수 를 한 것 도 왠 지 모 르 겠 습 니 다.
관련 정보 참고:  FTP 일괄 처리 스 크 립 트 사용Ftp 하위 명령

좋은 웹페이지 즐겨찾기