WinSCP - загрузите файл с SFTP-сервера в сетевое расположение, затем удалите

Мне нужно написать сценарий WinSCP или командный файл, который будет загружать содержимое удаленной папки SFTP, удалять содержимое, а затем загружать в сопоставленную сетевую папку. Я знаю, как написать часть скрипта для входа в систему. Но я не понимаю, как должна выглядеть конкретная командная строка. Из того, что я прочитал, командный сценарий для загрузки и удаления файла выглядит примерно так:

get -delete -transfer=binary *

Часть, которую я не получаю, - это команда загрузки в сетевую папку. Насколько я понимаю, put - это оператор команды загрузки WinSCP. Но как мне использовать его вместе с файлами расположения сетевой папки, в которые должны быть загружены файлы? Кроме того, можно ли это записать в пакетном файле или пакетный файл и сценарий нужно писать отдельно? Спасибо!


person jason_je_bum    schedule 25.02.2021    source источник


Ответы (1)


Выгрузка в подключенную сетевую папку не является задачей WinSCP. Подключенная сетевая папка ведет себя как локальный диск. Подойдет простая команда Windows copy. Итак, сначала загрузите WinSCP, а затем скопируйте (на самом деле это не загрузка) файлы на сетевой диск.

winscp /ini=nul /command ^
    "open sftp://user:[email protected]/" ^
    "get -delete /sftp/path/* c:\local\drive\path\" ^
    "exit"

copy c:\local\drive\path\* n:\mapped\network\drive\path\

Однако, если вам не нужны файлы локально, вы можете заставить WinSCP загрузить файлы из папки SFTP прямо на подключенный сетевой диск:

winscp /ini=nul /command ^
    "open sftp://user:[email protected]/" ^
    "get -delete /sftp/path/* n:\mapped\network\drive\path\" ^
    "exit"
person Martin Prikryl    schedule 25.02.2021
comment
Вы, как всегда, правы. Я должен был быть более ясным. Winscp (и скрипт) будет запущен на сервере, на который будут загружены файлы, и этот диск подключен к сети. - person jason_je_bum; 25.02.2021