批处理文件不必要地加倍了插入符号

Batch file is needlessly doubling the caret character

我需要将单个(带引号的)参数传递给具有单个前导插入符的 exe 文件。
我试过这个:

@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 似乎仍然有两个插入符号。

尝试在解析之前将其设置为变量:

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

输出:

"^one two"