Powershell小技巧之獲取變量列表
我們的需求是當想要列出腳本中所有變量。
這里定義了一個函數(shù) Get-Variable:
function Get-Variable
{
$token = $null
$errors = $null
$ast = [System.Management.Automation.Language.Parser]::ParseInput($psise.CurrentFile.Editor.Text, [ref] $token, [ref] $errors)
# not complete, add variables you want to exclude from the list:
$systemVariables = '_', 'null', 'psitem', 'true', 'false', 'args', 'host'
$null = $ast.FindAll({ $args[0] -is [System.Management.Automation.Language.CommandAst] }, $true)
$token |
Where-Object { $_.Kind -eq 'Variable'} |
Select-Object -ExpandProperty Name |
Where-Object { $systemVariables -notcontains $_ } |
Sort-Object -Unique
}
將腳本加載到ISE編輯器,接著已交互方式運行Get-Variable.
你將獲取當前打開腳本的變量清單。
如果你用包含了腳本代碼的變量去替換掉 “$psise.CurrentFile.Editor.Text”。你可以直接在編輯器外部運行這個,照這樣,我們可以使用Get-Content加載任何腳本到變量,同時使用這個加載變量到上面代碼中。
支持3.0及以后
在開發(fā)過程中,經(jīng)常需要用到環(huán)境變量(比如當前計算機名、登錄的用戶名、Path環(huán)境變量等),那么在PowerShell中如何知道有哪些環(huán)境變量呢?又該如何獲取指定環(huán)境變量的值呢?
PowerShell通過環(huán)境變量提供者(Environment Provider)讓我們可以訪問環(huán)境變量。默認情況下,PowerShell創(chuàng)建了一個驅(qū)動器(名稱為env)來與Environment Provider打交道。所以,我們可以通過env這個驅(qū)動器來處理與環(huán)境變量相關(guān)的操作。
1、列出所有的環(huán)境變量
我們可以使用“Get-ChildItem env:”來獲取所有的環(huán)境變量列表。洪哥本機的運行結(jié)果如下:
PS C:\Users\zhanghong> dir env:
Name Value
---- -----
ALLUSERSPROFILE C:\ProgramData
APPDATA C:\Users\zhanghong\AppData\Roaming
CommonProgramFiles C:\Program Files\Common Files
CommonProgramFiles(x86) C:\Program Files (x86)\Common Files
COMPUTERNAME ZHANGHONG-BOOK
ComSpec C:\Windows\system32\cmd.exe
HOMEDRIVE C:
HOMEPATH \Users\zhanghong
JAVA_HOME D:\JavaDevEnv\jdk1.6.0_16
……
注意,Get-ChildItem和dir是一個意思,后者是前者的別名。洪哥喜歡偷懶,所以直接用了dir。
上面,列出了所有的環(huán)境變量,有興趣的朋友可以一一熟悉一下,以便后面在需要用到變量的值時去調(diào)用。
2、獲取環(huán)境變量的值
語法:$env:<變量名>
舉個例子,如果我想獲取當前計算機名稱,則用法如下:
PS C:\Users\zhanghong> $env:computername
ZHANGHONG-BOOK
注意,環(huán)境變量也是一種變量,所以在“env:”之前必須有PowerShell變量的專用前綴“$”。
關(guān)于PowerShell獲取環(huán)境變量的值,本文就介紹這么多,希望對大家有所幫助,謝謝!
相關(guān)文章
PowerShell函數(shù)中限制數(shù)組參數(shù)個數(shù)的例子
這篇文章主要介紹了PowerShell中限制函數(shù)的數(shù)組參數(shù)個數(shù)的例子,可以控制數(shù)組的參數(shù)個數(shù)在指定范圍內(nèi),需要的朋友可以參考下2014-07-07PowerShell因為在此系統(tǒng)中禁止執(zhí)行腳本的解決方法
今天看到國外的一篇文章可以在cmd中運行95版本的ps1格式的批處理,但經(jīng)過測試默認情況下powershell支不支持執(zhí)行腳本需要執(zhí)行如下操作2016-10-10PowerShell使用枚舉變量定義帶智能提示功能的函數(shù)參數(shù)
這篇文章主要介紹了PowerShell使用枚舉變量定義帶智能提示功能的函數(shù)參數(shù),但定義后只在ISE當中有效,需要的朋友可以參考下2014-07-07PowerShell使用Clear-Content命令刪除、清空文件內(nèi)容的例子
這篇文章主要介紹了PowerShell使用Clear-Content命令刪除、清空文件內(nèi)容的例子,并對Clear-Content作了介紹,需要的朋友可以參考下2014-08-08