Поместите второй параметр в двойные кавычки при вызове пакетного сценария.
В пакетном сценарии используйте %~2
для ссылки на второй параметр без кавычек.
Если вы хотите использоватьдвойные кавычки внутри параметра в кавычках, дублируйте символ кавычки.При деквотировании в пакетном скрипте дублированные кавычки тоже удаляются, AFAIK.
Вот простой скрипт, иллюстрирующий идею:
@ECHO OFF
ECHO %1 %2
ECHO %~1 %~2
Теперь назовите его так:
mybatch.bat имя пользователя "привет, это текст"
и посмотрите результат:
имя пользователя "привет, это текст"
username hello это текст
То есть, когда вы используете %<em>i</em>
для ссылки на параметр, кавычки, если они есть, сохраняются, но %~<i>i</i>
эффективно удаляет их для вас.
И, как вы можете видеть из %~1
, используйте, если нет кавычек, вывод такой же, как с %1
, поэтому вам не нужно всегда включать кавычки просто для оправданияиспользование тильды.