6

WinSCP スクリプトを作成しようとしています。https://winscp.net/eng/docs/guide_automation#parametrizedで例を試しました

ただし、パラメーター値はスクリプトによって取得されません。

スクリプトが次のように呼び出されると、

winscp.com /script=testscript /parameter param1

以下が発生します。

初め、

Searching for host
host not found

表示されています。

続いて、実際に

"open command"

ただし、パラメーターは決して置換されません。

それはまだとして表示されます%1

4

3 に答える 3

4

どの例について話しているのかわかりませんが、私が持っているサンプルコードをいくつか紹介します。お役に立てば幸いです。このコードはすべて .bat ファイルにあります。

この例では、変数 %folder% は、2012 年 2 月 28 日の形式で今日の日付の名前で作成されます。次に、ユーザーにユーザー名を尋ねると、%password% と同じ変数 %username% に保存されます。次に、%folder% 変数を使用して、%folder% という名前のフォルダーを含むディレクトリを作成しました。

ここで、実際の「WinSCP コード」に飛び込みます。

次に、WinSCP.exe へのパスを見つけて、コンソールを呼び出しました。コンソールが呼び出された後、「open」コマンドと %Username% および %Password% 変数を使用して WinSCP サーバーに接続しました。

@ECHO OFF
cls
set folder=%date:~4,2%-%date:~7,2%-%date:~10,4%

SET /P username="Enter Username: "
IF "%username%"=="" GOTO Error

SET /P password="Enter Password: "

rem -- Clear Screen to hide password
cls

IF "%password%"=="" GOTO Error
    md C:\Logs\%folder%\int-rpt01\
    "C:\""Program Files""\WinSCP\WinSCP.exe" /console /command "option batch abort" 
    "option confirm off" "open sftp://%username%:%password%@server.server.net:22"
    "get /opt/ibm/cognos/c10_64/logs/cogserver.* C:\CogServerLogs\%folder%\int-rpt01\" "exit"

これが役立つことを願っています。どの例を使用しているか、またはどのように使用しているかについての詳細情報をいただければ幸いです。

于 2012-02-28T13:05:25.410 に答える
3

参考までに、これを自分で解決しようとしたときにここにたどり着いたので、構文は次のようになります。

スクリプト ファイル内: put "%1%" %2%

次に、コマンドラインから呼び出します winscp.com /script=script.file /parameter foo.txt bar/

これにより、スクリプトは次のように解決されます put "foo.txt" bar/

于 2013-12-03T16:03:08.263 に答える
2

パラメータをopenコマンドに渡すには、その後に を続けます%1%。理想的には二重引用符で囲みます。

open "%1%"

参照:
https://winscp.net/eng/docs/scripting#syntax

パラメータ化されたスクリプトの例も参照してください。


また、WinSCP の動作 (特にコマンドが実際に実行される前に接続を開こうとする試み) から、まだパラメーターopenを理解していない古いバージョンの WinSCP を使用していると推測されます。/parameter必ず最新バージョンの WinSCP を使用してください。

于 2013-04-03T14:38:31.230 に答える