Главная > Powershell > Чтение переменной окружения из текстового файла

Чтение переменной окружения из текстового файла

На днях попалась одна интересная возможность. Практического применения пока не придумал, но заметку на будущее решил сделать 🙂

Итак, допустим есть текстовый файл, содержимое которого указывает на переменные окружения. Например такой:

Корневой каталог системы`t: $Env:windir
Текущий пользователь`t`t: $Env:USERNAME
Профиль пользователя`t`t: $Env:USERPROFILE

Если прочесть его как обычный файл через Get-Content получим следующее:

PS C:\> Get-Content C:\Readme.txt

Корневой каталог системы`t: $Env:windir
Текущий пользователь`t`t: $Env:USERNAME
Профиль пользователя`t`t: $Env:USERPROFILE

Если же нужно достать значения из переменных окружения, то нужно воспользоваться методом ExpandString():

PS C:\> Get-Content C:\Readme.txt |
    ForEach-Object {$ExecutionContext.InvokeCommand.ExpandString($_)}

Корневой каталог системы        : C:\WINDOWS
Текущий пользователь            : serg
Профиль пользователя            : C:\Users\serg

Как видно в таком случае раскрываются не только значения переменных окружения, но и ESC-последовательности.

Кстати, таким образом можно не только раскрывать переменные, но выполнять команды, заменив метод на InvokeScript(). При этом если в файле есть просто текст его нужно взять в кавычки.

Т.е. например файл такого содержания:

‘Немного сведений о железе:’

Get-WmiObject Win32_ComputerSystem | Format-Table TotalPhysicalMemory, Manufacturer –AutoSize

Прочтётся так:

PS C:\> Get-Content C:\Readme.txt |
    ForEach-Object {$ExecutionContext.InvokeCommand.InvokeScript($_)}

Немного сведений о железе:

TotalPhysicalMemory Manufacturer
------------------- ------------
         2136915968 INTEL_
Реклама
Рубрики:Powershell Метки:
  1. Комментариев нет.
  1. No trackbacks yet.

Добавить комментарий

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

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: