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의 저자입니다)