Win CMD: как избежать символа "=" при подстановке строки - PullRequest
0 голосов
/ 08 мая 2020
set "a=6=5"
echo %a%
6=5

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

должен дать мне (ожидаемый ответ) 6-5.

Я экранировал = после выражения, которое нужно заменить, но = в выражение обрабатывается 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?

1 Ответ

0 голосов
/ 09 мая 2020

Решение через for l oop в последней строке. Символы-разделители не работают для =:

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
...