2016-07-29 11 views
1

あるサーバーから別のサーバーにファイルを転送する必要があります。私はPuTTYの最初の1にログインして、次のように入力します。バッチファイルとPuTTYを使用してリモートサーバー上でsftpコマンドを実行

sftp -v -oIdentityFile=path [email protected] 
cd path 
put file 

すべてが完璧に動作します!今私はバッチファイルでそれをやろうとしています。私が持っているの.batで:

putty.exe -ssh host1 -l username1 -pw password1 -m script.txt 

script.txtファイルで:

sftp -v -oIdentityFile=path [email protected] 
cd path 
put file 
exit 

これは、サーバーの数2に接続されているが、それは停止します。プレフィックスsftp>は表示されず、次の行は表示されません。提案はありますか?

+0

http://stackoverflow.com/questions/16150152/secure-ftp-using-windows-batch-script – sozkul

+0

script.txtファイルから '\ r'文字を削除する必要がありますか? –

答えて

1

リモートシェルはコマンドを受け取り、それを1つずつ実行します。したがって、sftpを実行し、終了するまで待ってからcdコマンド(シェル内ではsftpではない)、put(シェルコマンドではありません)などを実行します。


端末でのコマンド入力をシミュレートする場合は、「Plink」と入力リダイレクトを使用します。

Plink (PuTTY command-line connection tool)は、PuTTYのように機能するPuTTYパッケージのツールですが、GUIではなくコンソールです。したがって、入出力リダイレクトを使用できます。そして、とにかく、Plinkはで、タスクを自動化するツール、PuTTYではありません。

plink.exe -ssh host1 -l username1 -pw password1 < script.txt 

詳細については、How to type commands in PuTTY by creating batch file?をご覧ください。

関連する問題