Пакетный файл без необходимости удваивает символ вставки

Мне нужно передать один параметр (в кавычках) в исполняемый файл с одним начальным символом вставки.
Я пробовал это:

@echo off
setlocal
call :RunQuery "^one two"
goto wrapup
:RunQuery
call test.exe %1
:wrapup

Это приводит к

"^^one two"

Но мне нужно, чтобы это было

"^one two"

Я попытался

%~1, "%~1" and ^"%~1^"

безуспешно.

Последний, кажется, работает с эхом, но не при использовании с exe-файлом:

call test.exe ^"%~1^"

В этом случае test.exe по-прежнему получает две каретки.


person Ray Hulha    schedule 01.03.2017    source источник
comment
Вы не первый, кто это обнаружил.   -  person    schedule 02.03.2017
comment
Спасибо, вторая ссылка на самом деле помогло мне понять это лучше   -  person Ray Hulha    schedule 02.03.2017


Ответы (1)


Попробуйте установить его в переменную перед ее разбором:

@echo off
setlocal
call :RunQuery "^one two"
goto wrapup
:RunQuery
set "escape=%1"
echo %escape%
:wrapup

Результаты:

"^ один два"

person Sam Denty    schedule 01.03.2017