現在、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
Windows ディレクトリにインストールしましたPSFTP.EXE
。これを使用して、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の作者です)