Проверка на равенство в пакете - PullRequest
2 голосов
/ 05 августа 2011

Как я могу проверить свою строку, как если бы она была кавычкой (") или нет. Экранирующий символ по умолчанию - '^', не так ли?
Итак, я попробовал следующее, но безуспешно:

if  "!first_char!" == "^"" (...)

Я тоже пробовал двойные кавычки:

if  "!first_char!" == """" (...)

Спасибо!

Ответы [ 2 ]

1 голос
/ 05 августа 2011

Проблема только в правой части сравнения.
Задержанное расширение на левой стороне всегда безопасно.
Таким образом, вы можете просто использовать задержанное расширение на правой стороне, как

set singleQuote="
if  "!first_char!" == "!singleQuote!" (...)

Или же вы можете избежать всех кавычек.

if  "!first_char!" == ^"^"^" (...)
1 голос
/ 05 августа 2011

Проблема не с правой частью сравнения, а с левой частью. Поскольку first_char содержит кавычку, то левый операнд сравнения не имеет смысла. Таким образом, вы должны экранировать ^ переменную, которая содержит ".

попробуйте что-то вроде этого ...

if .^!first_char!.==.^". (@echo ^!first_char! YES) else (@echo ^!first_char! NO)
...