2012-04-02 1 views
0

Я пытаюсь получить доступ к переменным среды, используя Powershell. Переменные среды, которая из моего контроля, содержат периоды в этом формате:Невозможно разрешить переменные окружения в Powershell с периодами "." в них

ENVIRONMENT_VARIABLE.1 

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

$myvar = $env:ENVIRONMENT_VARIABLE.1 

Однако каждый раз, когда я пытаюсь получить эту переменную, он всегда оставляет «.1», ничего не возвращая.

Я знаю периоды + Bash = no bueno, но опять же это не в моих силах, и мне нужна работа. Если это помогает, я уже пробовал это, а также не повезло:

$myvar = ${env:ENVIRONMENT_VARIABLE.1} 

Я ценю любую помощь и помощь. Благодаря!

ответ

2

Последний формат вы используете для работы мне:

PS> ls env:\fo* 

Name       Value 
----       ----- 
Foo.1       bar.1 


PS> ${env:foo.1} 
bar.1 
+0

OK - это работает для меня тоже. Это приводит меня к тому, что действительно происходит на моем пути. Мой код находится в цикле while, где Foo.1 заменяется на Foo. $ I - $ i является добавочной переменной - мой код выглядит следующим образом: $ {env: foo. $ I}. Извините за мою неопределенность. Реальная проблема заключается в том, почему $ i не разрешает целое число. – user1068261

+0

Все, что внутри curlies обычно не оценивается, например '.', чтобы разыменовать свойство или' $ 'для ссылки на переменную. Попробуйте вместо этого «set-item» env: \ foo. $ I «bar.2». Обратите внимание, что вы не будете заменять env var, но будете создавать новую. Вы всегда можете использовать 'remove-item' для удаления старого env var. –

+0

Хммм, я не знаю, буду ли я следовать за тобой. Я не хочу устанавливать/удалять/манипулировать env var. Все, что я хочу, это значение этого env var для запуска задания позже. Есть ли способ сделать это? – user1068261