6
psftp.exe(パテ)を使用してpowershellからファイルをSFTPしようとしています。私はopenなどの単一のコマンドを実行できますが、デフォルトのディレクトリを変更してからファイルを置く必要があります。次のコードはpsftpに私を連れて行きますが、cdから.. byeへの行は無視します。私はsftpコマンドを持っているバッチファイルを実行することができますが、可能であれば私はpowershellを使用して達成したいと思います。psftpなどの複数のコマンドを呼び出す
$file = "C:\Source\asdf.csv"
$user = "user"
$pass = "pass"
$hst = "host"
$path="C:\ProgramFiles\psftp.exe"
$cmd = @"
-pw $pass [email protected]$hst
cd ..
cd upload
put $file
bye
"@
invoke-expression "$path $cmd"
これは素晴らしい動作します。コマンドを配列に入れて、あなたはそこから私を失いました。なぜ我々は$ path -pw $ pass ..と最後に$ cmdを持っていますか?何が成し遂げられるのか? – Afr
ちょっと@OldFartは、コマンドプロンプトからエラーメッセージをキャプチャする方法ですが、今は$ lastexitcodeが0であることをチェックします – Afr