В настоящее время я загружаю 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 [email protected] ....
Если кто-то знаком, пожалуйста, помогите мне его завершить. Какие аргументы мне следует привести. Сведения о пользователе, пароле, remotedir и хосте хранятся в файле свойств. Я хочу использовать ключи вместо пароля. Можете ли вы передать существующий аргумент ftpcmd.dat в psftp?
решение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)