1

В настоящее время я передаю файл FTP'ing на Unix-сервер с windows сервера. Я хочу изменить следующий раздел скрипта и перенести процесс ftp на sftp .

@echo off
echo user %user%> ftpcmd.dat
echo %password%>> ftpcmd.dat
echo bin>> ftpcmd.dat
echo put %filetobeuploaded% %filepath%%File%>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat %host%
del ftpcmd.dat
:END

У меня установлен PSFTP.EXE в моем каталоге Windows. Используя это, я могу отправить файлы с SFTP?

Как заменить строку ftp -n -s:ftpcmd.dat %host% на SFTP. Я понимаю, что вы можете сделать что-то вроде этого ....

CALL PSFTP.EXE someUserName@54.54.54.54 ....

Если кто-то знаком, пожалуйста, не могли бы вы помочь мне завершить это. какие аргументы я бы привел. данные пользователя, pw, remotedir, хоста хранятся в файле свойств. Я ищу использовать ключи вместо пароля. Можете ли вы передать существующий аргумент ftpcmd.dat в psftp?

1 ответ1

1

Вы также можете использовать WinSCP. Он поддерживает как SFTP, так и скрипты.

См. Руководство по преобразованию сценария Windows FTP в сценарий WinSCP SFTP.

Сценарий будет выглядеть так:

open sftp://%user%:%password%@%host%
put -transfer=binary %filetobeuploaded% %filepath%%File%
exit

Вы можете запустить скрипт следующим образом (если он сохранен в script.txt):

winscp.com /script=script.txt

Обратите внимание, что (в отличие от ftp.exe) переменные среды также разрешаются в сценарии WinSCP.

Если вы хотите использовать файл закрытого ключа, используйте:

open sftp://%user%@%host% -privatekey=path\key.ppk

(Я автор WinSCP)

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