batch file是不必要的加倍字符字符

我需要传递一个单引号插入一个单引号参数。
我试过这个:

@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 

输出:

“^一二”