Почему переданные значения в пакетной переменной%% применяются неправильно? - PullRequest
0 голосов
/ 24 апреля 2018

[Исходное название: Почему строчные значения в переменной% пакета% возвращаются в верхнем регистре?]

Состояние

У меня есть пакетный файл, в котором значение для переменной объявлено следующим образом:

SET myVar="something.lowercase"

Но позже в сценарии, когда вы ссылаетесь на эту переменную как таковую:

%myVar%

значение приходит как SOMETHING.LOWERCASE, что приводит к неправильной работе конкретной команды. ( см. Разрешение: проблема была ложной " в команде, а прописными буквами было то, как сообщалось о "сбое" )

Концерн

Почему и при какой ситуации это происходит? moot , так как значение не изменяется, а скорее как сообщение о сбое и сбой произошли из-за " вводится в переданное значение ( см. разрешение )

Контекст

Для контекста, в случае, если это имеет значение , он вызывается следующим образом: ( оказалось, что значение, поскольку введенный " вызывал сбой проверки, и путаница была исходя из "не могу найти ..." в верхнем регистре )

TASKLIST /FI "IMAGENAME eq %myVar%" 2>NUL | FIND /I /N "%myVar%">NUL

Я подозреваю, что это как-то происходит в контексте этой команды, но не могу быть уверен и не знаю почему. Если это случайно, как я могу смягчить это? ( см. Разрешение )

Заранее спасибо.


Разрешение

Благодаря предложению @ Campo изменение значения путем удаления " решило проблему, и скрипт теперь работает правильно. Спасибо.

1 Ответ

0 голосов
/ 25 апреля 2018

Ваша проблема в том, что вы без необходимости включаете двойные кавычки в значение переменной.

Поскольку вы включили двойные кавычки, которые ищет фильтр TaskList:

"IMAGENAME eq "something.lowercase""

... и ваша команда Find пытается найти соответствие:

""something.lowercase""

Исправлено использование правильного синтаксиса для установки переменной:

Set "myVar=something.lowercase"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...