Я пытаюсь сравнить строку, которая должна быть чувствительна к регистру в сценарии пакетной работы DOS. Я не могу понять, как включить чувствительность к регистру в выражении IF. Вот то, что я делаю, и это также соответствие на нижнем регистре «-f», который я пытаюсь избежать:Сравнение Windows строк с чувствительностью к регистру
SET "ARGS=%*"
IF "%ARGS:-F=%" NEQ "%ARGS%" (
ECHO Pro option -F was found and not allowed.
GOTO :ERROR
)
ДОС 'IF' заявление * * является чувствительны к регистру по умолчанию; он должен быть нечувствителен к регистру с помощью переключателя '/ I'. Вы повторяли значения ''!% ARGS%: - F =! "' И '"!% ARGS%! "' Перед выражением 'IF', чтобы посмотреть, что они держат? – LittleBobbyTables
Это звучит странно, поскольку EQ и NEQ (и ==) чувствительны к регистру по умолчанию, если не указан флаг «/ i». –
В частности, ошибка, которую я получал, была «символ (был неожиданным) или сообщение, подобное этому. Это сообщение было разрешено путем замены« NEQ »на метод« NOT == ». – djangofan