배치 스크립트를 사용하여 FTP 서버에 파일을 어떻게 업로드합니까?

배치 스크립트를 사용하여 FTP 서버에 파일을 어떻게 업로드합니까?

FTP_automation.bat아래 코드가 포함된 배치 파일을 만들었습니다 .

SET MyPath=E\PGP\test_pg
ftp
open 142.245.30.165 21
TESTA9MS
test11
binary
put %MyPath%
quit
Pause

실행 중일 때 FTP_automation.bat매개변수를 전달하는 파일이 업로드되지 않습니다.

배치 파일에 언급된 후 스크립트가 중지되고 ftp배치 파일에 전달한 IP 주소와 포트 번호에 연결되지 않습니다.

이 명령을 수동으로 입력하면 완벽하게 작동했습니다. 이 코드를 어떻게 수정해야 하나요?

답변1

ftp명령을 별도의 파일에 넣어야 합니다 . 터미널에 입력한 줄을 파일에 넣을 수 없으며 .bat동일하게 작동할 것으로 기대할 수 없습니다. 파일 .bat에는 Windows 명령만 포함될 수 있습니다. ftp배치 파일에서 명령을 실행하면 해당 명령을 기다립니다. 파일 에 대해 알지 못하므로 .bat해당 파일에서 명령을 읽을 수 없습니다.

따라서 명령을 별도의 텍스트 파일(예: ftp.txt)에 넣으십시오.

open 142.245.30.165 21
TESTA9MS
test11
binary
put E\PGP\test_pg
quit

그리고 다음 .bat과 같은 파일에서 실행하십시오.

ftp -s:ftp.txt
pause

환경 변수에서 동적 파일 이름을 사용해야 하는 경우 즉시 텍스트 파일을 만들어야 합니다. 은 ftp변수를 지원하지 않습니다.


더 나은 FTP 클라이언트를 사용하는 경우 배치 파일에 명령을 포함하고 환경 변수를 사용할 수 있습니다.

예를 들어WinSCP:

set MyPath=E\PGP\test_pg

winscp.com /command ^
    "open ftp://TESTA9MS:[email protected]" ^
    "put ""%MyPath%""" ^
    "exit"

pause

WinSCP를 사용한 스크립팅에 대한 소개는 다음을 참조하세요.
https://winscp.net/eng/docs/guide_automation

안내도 나와있어요Windows FTP 스크립트를 WinSCP 스크립트로 변환. WinSCP GUI를 사용할 수도 있습니다.배치 파일을 생성당신을 위한.

(저는 WinSCP의 저자입니다)

관련 정보