3

Я хотел бы автоматизировать процесс WinSCP, поэтому я хочу написать сценарий оболочки, который делает то же самое, что WinSCP.

Я пытался использовать команду SCP, но она не подключается к моей локальной машине. Я также видел PSCP, но я не могу установить pscp.exe на мою машину.

4 ответа4

2

Установите Putty, затем используйте:

c:\progra~1\putty\pscp.exe c:\local_path\to\files.*  user@host:/destination/directory

Вы можете использовать ключи (сгенерировать пару и поставить только открытый ключ (экспортируется в правильном формате!) в файл .ssh/authorized_keys конечного пользователя, чтобы сделать это автоматически (т.е. вам не нужно каждый раз вводить пароль в интерактивном режиме) и обеспечить безопасность. Чтобы использовать ваш ключ с pscp, просто добавьте параметр -i \path\to\PRIVATEkey перед источником и местом назначения.

1

Я могу порекомендовать страницу DOS Batch FTP Scripts.

Мне нужно было сделать это на моей работе (это была небольшая конкуренция между системными администраторами), и это мне очень помогло. Вы также можете использовать FileZilla с CommandLine или что-то еще, что обеспечивает полную поддержку FTP.

1

Если вы используете Windows 10 с Anniversary Update, вы можете установить подсистему Linux для Windows и использовать обычный scp.

0

Вы можете использовать VBScript и версию XMLHTTP. Следующие подпрограммы загружаются вместо загрузок, но они могут дать вам начало:

Sub wGet(strURL, strLocalFile)
'
' Example Usage
' wGet URLtofile, LocalFileSpec
'
  Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP.3.0")
  With objXMLHTTP
    .Open "GET", strURL, False
    .Send
    If .Status = 200 Then
        Set objStream = CreateObject("ADODB.Stream")
        With objStream
          .Open
          .Type = 1
          .Write objXMLHTTP.responseBody
          .SaveToFile strLocalFile, 2
          .Close
        End With
    Else 
      varToUser = MsgBox("Web server returned an error", _
                  vbInformation, "ASU Portable Environment Setup")
      Wscript.Quit
    End If
  End With
  Set objXMLHTTP = nothing
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .