【问题标题】:Batch file is needlessly doubling the caret character批处理文件不必要地将插入符号加倍
【发布时间】:2017-03-01 23:14:28
【问题描述】:

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

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

这会导致

"^^one two"

但我需要它

"^one two"

我试过了

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

没有成功。

最后一个似乎与 echo 一起使用,但与 exe 文件一起使用时却不行:

call test.exe ^"%~1^"

在这种情况下,test.exe 似乎仍然有两个插入符号。

【问题讨论】:

标签: windows batch-file escaping character caret


【解决方案1】:

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

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

输出:

“^一二”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多