批处理文件不必要地加倍了插入符号
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"
我需要将单个(带引号的)参数传递给具有单个前导插入符的 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"