переменная="значение"

Вопрос или проблема

Я новичок в командной строке Windows, будьте добры.

Я испытываю трудности с выполнением следующей команды с предопределенными переменными, которые передаются из другого скрипта, который, по сути, вызывает приведенную ниже функцию.

Open sftp://%1%:%2%@someurl.com -hostkey="ssh-rsa 2048 %4%"

Переменные %1% и %2% возвращаются корректно, но %3% не работает, вероятно, потому что она заключена между двумя " как параметр. Как мне нужно изменить синтаксис, чтобы выполнить команду? Я пробовал & и экранирование с помощью каретки, но это не дало результата.

Спасибо

Ответ или решение

Чтобы корректно вставить переменные в команду Windows BAT, особенно когда они находятся внутри кавычек, необходимо учитывать правильный порядок кавычек и синтаксиса. В вашем случае вы столкнулись с проблемой при использовании переменной %4%, которая могла не подставляться правильно из-за вложенных кавычек.

Ваш оригинальный код выглядит так:

Open sftp://%1%:%2%@someurl.com -hostkey="ssh-rsa 2048 %4%"

Попробуйте изменить синтаксис следующим образом, используя двойные кавычки с правильной экранированием:

Open sftp://%1%:%2%@someurl.com -hostkey=ssh-rsa 2048 %4%

С этой правкой кавычки вокруг аргумента hostkey были убраны, что может помочь избежать обработки переменной %4% как части строки, заключенной в кавычки. Убедитесь, что при вызове переменной она правильно инициализирована перед выполнением команды.

Если вам нужно, чтобы значение параметра hostkey оставалось в кавычках, вы можете использовать такую конструкцию:

Open sftp://%1%:%2%@someurl.com -hostkey="ssh-rsa 2048 %4%"

Обязательно проверьте, чтобы значение переменной %4% действительно передавалось из вызывающего скрипта корректно. Если это не сработает, убедитесь, что ни одна из переменных %1%, %2%, или %4% не пустая и содержит корректные значения.

Также, если вы хотите дополнительно удостовериться в правильности передачи переменных, добавьте вывод для отладки:

echo %1%
echo %2%
echo %4%

Таким образом, если значения корректны, команда должна выполниться как ожидалось. Удачи, и если возникнут дополнительные вопросы, не стесняйтесь спрашивать!

Оцените материал

">
Добавить комментарий

Капча загружается...