배치 파일 내에서 FTP 배치 파일 실행

배치 파일 내에서 FTP 배치 파일 실행

매일 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>

특정/동적 요구 사항을 처리하려면 이러한 스크립트를 수정하세요.

관련 정보