2016-10-17 1 views
1

이 문제에 대한 해결책을 찾기 위해 여러 게시물을 검색했지만 찾지 못했습니다. FTP의 폴더로 이동하여 모든 레코드를 다운로드 한 배치 파일을 작성한 다음 모두 삭제합니다.배치를 사용하여 FTP 폴더의 모든 파일을 삭제하는 방법

지금까지 내가 명령을 사용하려고 아래의 코드를 참조하십시오 "mdel ."내가 명령을 사용하는 경우 "삭제"하고 파일을 지정하는 것으로 나타났습니다이 솔루션의

@echo off 
echo user ftpUser> ftpcmd.dat 
echo Password>> ftpcmd.dat 
echo cd /tst/>>ftpcmd.dat 
echo binary>> ftpcmd.dat 
echo prompt n>> ftpcmd.dat 
echo mget *.*>> ftpcmd.dat 
echo mdel *.*>> ftpcmd.dat 
echo quit>> ftpcmd.dat 
ftp -n -s:ftpcmd.dat 77.99.999.999 
del ftpcmd.dat 

을 그것은 작동합니다. 예 :echo delete 312312312.csv >> ftpcmd.dat

그러나 mdel을 사용하는 이유는 (예와 같이) 그렇지 않습니다.

더 좋은 방법을 알고 계십니까?

감사

+0

대화 형으로 시도하고 메시지가 있는지 확인해 볼 수 있습니까? –

+0

안녕하십니까, 진심으로 감사드립니다. ls와 같은 명령을 내리면 뭔가를 기다리고있는 것 같습니다. http://prntscr.com/cvk2ga –

+0

'ls'가 작동하지 않으면 'mget' (또한'mdel'도)'ls'를 사용하여 다운로드 및 삭제할 파일 목록을 찾는 것처럼 작동하지 않습니다. 'mget'이 작동한다는 것을 보여주는'ftp'의 완전한 출력을 게시하십시오. 그러나'mdel'과'ls'는 작동하지 않습니다. –

답변

0

mdel 명령 요구는 원격 디렉토리에있는 파일을 나열합니다. 문제는 Windows에 내장 된 ftp.exe이 FTP 활성 모드 만 지원한다는 것입니다. 이 모드에서 서버는 컴퓨터로 들어오는 연결을 열거 나, 목록을 전송하거나, Windows 방화벽이나 사용자와 서버 사이의 다른 방화벽/프록시/NAT에 의해 기본적으로 차단되는 것을 가져와야합니다. 따라서 ftp.exe은 현재 쓸모가 없습니다.

자세한 내용은 내 문서 network configuration for FTP active mode을 참조하십시오.


다른 타사 FTP 클라이언트를 사용하십시오. 대부분 이러한 종류의 문제가없는 수동 모드를 지원합니다.

자신을 알아 냈으므로 그러한 클라이언트 중 하나는 WinSCP입니다. WinSCP scripting 사용

, 배치 파일과 같은 것이다 : 서버에서 지원하는 경우

@echo off 

winscp.com /log=ftp.log /command^
    "open ftp://ftpUser:[email protected]/"^
    "cd /tst"^
    "get *"^
    "rm *"^
    "exit" 

비록,의 ftpes://으로 ftp://를 대체함으로써, secure FTP over TLS/SSL을 사용하는 것이 좋습니다.

converting Windows FTP script to WinSCP script에 대한 안내서도 참조하십시오.

(내가 WinSCP에의 저자 해요)

0

나는이 문제에 대한 해결 방법을 발견 http://winscp.net/eng/docs/scriptcommand_rm#examples

내가 얻고 동시에 여러 파일을 삭제 할 수있었습니다이 소프트웨어를 사용하여, 그리고 코드는 지금과 같다 : 옵션 배치 도움말에 대한

open ftp://user:[email protected] 
cd /tst/ 
get *.* d:\www\*.bak 
rm *.* 
EXIT 

감사를 확인 옵션을 중단 yway.

@Martin Prikryl 소프트웨어 및 설명 주셔서 감사합니다.

감사합니다.

관련 문제