### 命令格式
Verb-noun -paramter actual_parameters
#幫助系統
man(Get-Help) -FULL
### 常用命令
$PSVersionTable
Get-Member
> (ps)[0]|gm
Get-Verb
Get-Alias
Get-ExecutionPolicy
Get-Process | where
### 通用對象方法
- GetType
(1..5)[0].GetType()
1..5 | select {$_.GetType().Name}
### 技巧
- man New-Alias help New-Alias
- tab鍵補全
- 小寫輸入命令后,按tap補全后變大寫說明命令正確
#從類名查看類方法 靜態方法
[System.string] | get-member -MemberType Method -Static
[System.AppDomain] | get-member -MemberType Method -Static
#從程序集查方法
[AppDomain]::CurrentDomain.GetAssemblies() |
Where-Object { -not $_.IsDynamic } |
ForEach-Object { $_.GetExportedTypes() } |
ForEach-Object { $_.getmembers() } |
Where-Object { $_.isStatic} |
Where-Object { $_ -like "*environment*" } |
ForEach-Object { "[{0}]::{1} --> {2}" -f $_.declaringtype, $_.toString().SubString($_.toString().IndexOf(" ")+1), $_.ReturnType }
#param([int]$n = $(throw "請輸入一個正整數"))
上面這條指令在ISE中執行,輸入參數正確也會輸出錯誤提示,但不影響結果
在powershell中執行時,輸入參數正確,結果正確,也不會提示
#字符串比較 用 -like 不能用contains, 用通配符* 代表前后其它字符來模糊匹配
ps | ? {$_.Name -like "*You*"} #-Clike #-Ilike
Get-WindowsFeature
行前面的[ ]表示沒有安裝,[x]表示已經安裝
第三列 要安裝的包名
通用參數:
-whatif
參數說明:
是否必須: True是必選參數
位置說明: 如果是0或1表示可以可以省略型參
如果是named, 要用型參指定
Get-Command -Verb format
gcm -noun process
#查詢別名
ls alias: | where {$_.Definition.Contains("Get")}
#查看Powershell支持的驅動器,
Get-PSDrive
#查看正在使用的變量>Powershell將變量的相關信息的記錄存放在名為variable:的虛擬驅動器中。
#如果要查看所有定義的變量,可以直接遍歷variable:
ls variable:
# Powershell所有的變量都有一個決定變量是否可用的作用域。Powershell支持四個作用域:全局、當前、私有和腳本。
PS> $logo
PS> $local:logo
PS> $script:logo
PS> $private:logo
PS> $global:logo
#將十進制轉換成十六進制 PS C:> (1515).ToString('x') 5eb PS C:> (1515).ToString('X') 5EB PS C:> "{0:X}" -f 1515 5EB PS C:> "{0:x}" -f 1515 5eb #將十六進制轉換成十進制 PS C:> 0xf 15 PS C:> 0xABCEF 703727 <#讀取特殊的環境變量 通過環境變量讀取Windows操作系統的安裝路徑,和默認應用程序的安裝路徑。 #> PS> $env:windir C:\Windows PS> $env:ProgramFiles C:\Program Files # 查找環境變量 # Powershell把所有環境變量的記錄保存在env: 虛擬驅動中,
# 因此可以列出所有環境變量 。一旦查出環境變量的名字就可以使用$env:name 訪問了。 PS> ls env: Name Value ---- ----- ALLUSERSPROFILE C:\ProgramData APPDATA C:\User\sv-test\Home\AppData\Roaming CommonProgramFiles C:\Program Files\Common Files COMPUTERNAME MYHome-test-01 ComSpec C:\Windows\system32\cmd.exe FP_NO_HOST_CHECK NO HOMEDRIVE C: HOMEPATH Users\v-test\Home #使用環境變量 PS C:\Users\vv> cd $env:windir PS C:\Windows>
#轉義符 反引號”`”
#輸出對象
Get-Variable str | Format-Table Name,Description
$str="我是一個變量" $var=Get-Variable str $var | fl * #fl==> Format-List
Get-Variable str | ft Name,Description #ft==>Format-Table
