Как отобразить цветовые кавычки в этой пакетной функции?

248
Mark Deven

У меня есть следующий скрипт с цветной функцией эха:

@echo off setlocal EnableDelayedExpansion for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do ( set "DEL=%%a" ) ::call :c 0b "^!<>&| abc123 %%%%"*?" rem Prepare a file "X" with only one dot <nul > X set /p ".=."   call :c 0f " [DBName] ["Value=Data"] ["Value=Data"] " exit   :c set "param=^%~2" ! set "param=!param:"=\"!" findstr /p /A:%1 "." "!param!\..\X" nul <nul set /p ".=%DEL%%DEL%%DEL%%DEL%%DEL%%DEL%%DEL%" if /i not "%3"=="/n" echo. exit /b 

Линия call :c 0f " [DBName] ["Value=Data"] ["Value=Data"] "не работает. Как я могу заставить его работать?

0
Без понятия. Но значение `% 3` ломает`, если / i не "% 3" == "/ n" эхо. DavidPostill 5 лет назад 0
Эта строка расширяется до `if / i, а не" Data "] [" Value "==" / n "echo`, откуда исходит неверный синтаксис. Пойди разберись ... DavidPostill 5 лет назад 0
Он отлично работает для меня. Он читается как «», когда% 3 не определено Mark Deven 5 лет назад 0
Да, но `% 3` не является неопределенным. Попробуйте добавить `echo% 3` в подпрограмму ... DavidPostill 5 лет назад 0
Если% 3 не определен, он имеет кавычки, поэтому он работает нормально. Вот как вы тестируете, если «% 3» == «» echo undefined Mark Deven 5 лет назад 0
Попробуйте добавить эхо «% 3», и оно не вернется, эхо выключено Mark Deven 5 лет назад 0

0 ответов на вопрос

Похожие вопросы