【问题标题】:Win CMD: How to escape "=" in string substitutionWin CMD:如何在字符串替换中转义“=”
【发布时间】:2020-05-08 19:09:39
【问题描述】:
set "a=6=5"
echo %a%
6=5

echo "%a:6=5=6-5%"
"5=6-5=5"

应该给我(预期的答案)6-5

我已经转义了 = after 表达式被替换,但 = in 表达式被 CMD 视为取代基的分隔符。

echo "%a:6=5^=6-5%"
"5^=6-5=5"

echo %a:"6=5"="6-5"%
6=5

echo %a:"6^=5"="6-5"%
6=5

我应该如何构造它以让6-5 替换6=5

【问题讨论】:

  • 我得到的唯一解决方法是 for 循环与 = 分隔符

标签: windows command-line string-substitution


【解决方案1】:

通过最后一行中的for 循环解决。 = 没有分隔符:

for /f "delims==" %i in ('echo %a%') do echo %i
6 5
for /f "delims==" %i in ('echo %a%') do echo %i,
6 5,
for /f "delims=^=" %i in ('echo %a%') do echo %i,
6 5,
for /f "delims=\=" %i in ('echo %a%') do echo %i,
6 5,
for /f "delims===" %i in ('echo %a%') do echo %i,
6 5,
for /f "delims=`=" %i in ('echo %a%') do echo %i,
6 5,
for /f "delims=`=" %i in ('echo %a%') do set i=%i& echo !i: =-!
6-5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多