Игнорировать вопросительный знак в пакетных сценариях .bat - PullRequest
0 голосов
/ 25 мая 2009

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

У меня проблемы с этой строкой:

script.bat /n"output.owl" /r"http://www.address.com/blog/?feed=rss2"
Символ

= также может быть проблемой.

Ответы [ 2 ]

2 голосов
/ 14 марта 2012

Я подозреваю, что проблема здесь в том, что оригинальный пакетный файл использует цикл for для обрабатывать параметры командной строки, и знак вопроса используется для расширение шаблона имени файла.

> type fortest.bat
@echo off
for %%a in (%*) do (
   echo arg is %%a
)
> fortest a b c/?d
arg is a
arg is b

Использование позиционных параметров% 1 и% 2 позволяет избежать подстановочных знаков сделано в цикле for ... (% *). Оператор смены избегает подстановочных знаков расширение, если необходимо обработать неизвестное количество параметров.

> type shifttest.bat
@echo off
:loop
    if "x%1" == "x" goto :eof
    echo arg is %1
    shift /1
    goto :loop
> shifttest a b c/?d
arg is a
arg is b
arg is c/?d
0 голосов
/ 25 мая 2009

Вы всегда можете просто поймать в ловушку? в вашем пакетном файле и отобразите соответствующее сообщение пользователю.

Это вопрос , который поможет вам, который уже был задан.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...