
매일 ftp.txt 파일의 명령을 실행하는 예약된 작업이 있습니다. 아래에서 볼 수 있는 파일은 FTP를 통해 내 사이트에 연결되고 3개의 XML 파일을 내 웹 서버에 저장합니다.
명령:
ftp -s:filename
명령으로 실행되는 파일
open ftp.mysite.co.uk
username
password
put C:\file.xml location/file.xml
put C:\file1.xml location/file1.xml
put C:\file2.xml location/file2.xml
bye
이제 동일한 전송을 실행해야 하지만 FTP 세부 정보가 다른 사이트로 전송해야 합니다. 각 전송에 대해 새 Windows 작업을 예약하고 싶지 않아서 명령줄에서 트리거되는 기본 ftp.txt 파일에서 다른 ftp.txt 파일을 실행할 수 있는 방법이 있는지 궁금합니다. 이것이 가능하지 않다면 단일 명령줄 명령으로 여러 개의 ftp 배치 파일을 실행할 수 있습니다.
답변1
당신은 사용할 수 있습니다WinSCP~처럼스크립트 FTP 클라이언트.
의 스크립팅 기능은 WinSCP
제어 시퀀스, 파일 경로 조작 등을 지원하지 않습니다. 이러한 기능이 필요한 경우 다른 스크립팅 언어(예:VB스크립트). 지원하는 모든 언어COM/액티브X사용할 수 있습니다.
예WinSCP 사이트에서:
<job>
<reference object="WinSCP.Session" />
<script language="VBScript">
Option Explicit
' Setup session options
Dim sessionOptions
Set sessionOptions = WScript.CreateObject("WinSCP.SessionOptions")
With sessionOptions
.Protocol = Protocol_Sftp
.HostName = "example.com"
.UserName = "user"
.Password = "mypassword"
.SshHostKeyFingerprint = "ssh-rsa 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
End With
Dim session
Set session = WScript.CreateObject("WinSCP.Session")
' Connect
session.Open sessionOptions
' Upload files
Dim transferOptions
Set transferOptions = WScript.CreateObject("WinSCP.TransferOptions")
transferOptions.TransferMode = TransferMode_Binary
Dim transferResult
Set transferResult = session.PutFiles("d:\toupload\*", "/home/user/", False, transferOptions)
' Throw on any error
transferResult.Check
' Print results
Dim transfer
For Each transfer In transferResult.Transfers
WScript.Echo "Upload of " & transfer.FileName & " succeeded"
Next
' Disconnect, clean up
session.Dispose
</script>
</job>
특정/동적 요구 사항을 처리하려면 이러한 스크립트를 수정하세요.