2010-12-31 6 views
1

Я использую xp. Я сталкиваюсь с проблемой использования переменных.Настройка переменной окружения

Я использую следующий код

@echo от множества вара = "srting"

Когда я проверить значение вара с помощью%

набор% Var%

переменной среды % var% не определено

Помощь любому ...

ответ

0

Если вы хотите, чтобы выполнить другой код путь на основе содержимого файла, это должно работать для вас:

@echo off 
set FILE_CONTENT=string 

for /f %%a in (file.txt) do set var=%%a 

if %var%==%FILE_CONTENT% (
goto MATCHED 
) else (
    goto NOT_MATCHED 
    ) 

:MATCHED 
echo "matched" 
goto:EOF 

:NOT_MATCHED 
echo "Not matched" 
goto:EOF 

Однако, если имя файла содержит «spaces» или «(» как в «c:\program files(x86)», вышеуказанный код не будет работать. Обходной путь - получить короткое имя (возможно, используя: ~ dpsx) файла, а затем использовать его.

+0

для/f %% a in (file.txt) действительно устанавливает var = %% a .... %% a был неожиданным в это время. –

+0

Вы используете .bat-файл с указанным выше кодом или выдаете эти команды из командной оболочки cmd? Если вы используете оболочку cmd, замените «%%» на «%». Кроме того, есть ли у вас специальный символ в имени вашего файла? –

+0

Никакой специальный символ в имени файла. Но текст файла содержит строку, затем: (символ двоеточия), затем пробел, а затем некоторую строку. скрипт считывает upto: из файл. –

1

Вынуть пространство до и после знака равенства; IIRC, я думаю, что это может вызвать проблемы.

Кроме того, вы не можете поместить больше одной команды на линии, как это, вы должны отделить его амперсандами, или вместо этого, изменить его к этому:

@echo off 
set var="srting" 

Edit:

вы сказали, что вы пытаетесь:

Set %var% 

но% Var% является значение, а не имя переменной. Это действительно то, что вы намеревались?

+0

Я пробовал, но, к сожалению, он не работает. промл тот же .. –

+0

См. мое редактирование: была ли опечатка, или вы действительно хотели использовать 'Set'? – Mehrdad

+1

спасибо, что я использовал пространство до и после знака равенства. теперь его рабочий –

1

набор% Var% переменной среды% Var% не определено

Пробелы не допускаются в установке переменных в DOS пакетного файла.

Попробуйте это:

@echo от

набор переменная = "srting"

эхо% Var%

.... что должно дать вам выход «srting» на следующей строке.

Если вы пытаетесь сейчас - собственная команда: установить% Var%

вывод должен быть: "переменной srting окружающей среды не определены"

на моем взгляде является правильным. Надеюсь, это имеет смысл для вас.

Смежные вопросы