Передача параметров в командную строку winscp.com - PullRequest
6 голосов
/ 28 февраля 2012

Я пытаюсь написать скрипт WinSCP.Я попробовал пример на
https://winscp.net/eng/docs/guide_automation#parametrized

, но значение параметра не принимается сценарием.

Когда сценарий вызывается как,

winscp.com /script=testscript /parameter param1

Происходит следующее:

Сначала отображается

Searching for host
host not found

.

Затем следует фактическое подключение к хосту с использованием

"open command"

но параметр никогда не подставляется.

Он по-прежнему отображается как %1

Ответы [ 3 ]

4 голосов
/ 28 февраля 2012

Я не знаю, о каком примере вы говорите, но я покажу вам пример кода, который у меня есть.Я надеюсь, что это помогает.Этот код находится в файле .bat.

В этом примере создается переменная% folder% с именем сегодняшней даты в формате 28.02.2012.Затем я спрашиваю у пользователя его имя пользователя, и оно сохраняется в переменной% username%, то же самое с% password%.Затем я использовал переменную% folder%, чтобы создать каталог с папкой с именем% folder%.

Теперь мы погрузимся в фактический «код WinSCP».

Затем я нашел путь к своему WinSCP.exe, а затем называется консоль.После вызова консоли я подключился к своему WinSCP-серверу с помощью команды open и переменных% Username% и% Password%.

@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"

Надеюсь, это поможет.Будем благодарны за любую дополнительную информацию о том, какой пример вы используете и как вы его используете.

3 голосов
/ 03 декабря 2013

Для справки, так как я только что приземлился здесь, когда пытался сам разобраться, синтаксис должен быть:

В вашем файле скрипта: put "%1%" %2%

и затем вызвать его изкомандная строка с winscp.com /script=script.file /parameter foo.txt bar/

Это разрешит сценарий к put "foo.txt" bar/

2 голосов
/ 03 апреля 2013

Чтобы передать свой параметр в команду open, следуйте за ней %1%, в идеале заключив в двойные кавычки:

open "%1%"

См.:
https://winscp.net/eng/docs/scripting#syntax

См. Также пример параметризованного сценария .


Также, исходя из поведения WinSCP (особенно попытки открыть соединение до фактического выполнения команды open), я предполагаючто вы используете старую версию WinSCP, которая еще не понимает параметр /parameter.Убедитесь, что вы используете последнюю версию WinSCP.

...