2017-12-04 7 views
1

ファイルをFTPサーバーに挿入するコードがあります。次のようになります。PowerShell "WinSCP.comを呼び出すときに、 '/'演算子"エラーの後に値式を指定する必要があります。

"C:\Program Files (x86)\WinSCP\WinSCP.com" /command "open [email protected]:MyPort/MyPath/ -privatekey=myprivatekey.ppk" "put myfile.txt" "exit" 

これは、Windowsのコマンドプロンプトで細かい動作しますが、PowerShellで同じことを実行しているとき、それは動作しませんし、私に次のエラーが返されます。私はしました

"You must provide a value expression following the '/' operator"

を私のコードのいくつかの組み合わせを試してみましたが、それらのどれも働いた:

1)

"C:\Program Files (x86)\WinSCP\WinSCP.com" -command "open [email protected]:MyPort/MyPath/ -privatekey=myprivatekey.ppk" "put myfile.txt" "exit" 

2)

"C:\Program Files (x86)\WinSCP\WinSCP.com" -command ""open [email protected]:MyPort/MyPath/ -privatekey=myprivatekey.ppk" "put myfile.txt" "exit"" 

答えて

2

winscp.com実行可能ファイルのパスおよび/またはファイル名に空白が含まれているので、&オペレータとそれを呼び出す:

& "C:\Program Files (x86)\WinSCP\WinSCP.com" /command "open [email protected]:MyPort/MyPath/ -privatekey=myprivatekey.ppk" "put myfile.txt" "exit" 

(winscp.comにコマンドライン引数を想定しているそうでなければ正しい、もちろん)

+0

あなたの答えをありがとう。今は動作していますが、空白のパスの下にあるので、私のppkを取得しません。 -privatekeyの直後に "&"を追加しようとしましたが、うまくいきません。どのようにこれを修正するための任意のアイデア? – Victor

+0

@Victorあなたの質問には空白が含まれていません。しかし、これはおそらくあなたを助けるでしょう:[WinSCPを使ってバッチファイルでスペースを含むパスを使う](https://stackoverflow.com/q/46154795/850848) –

関連する問題