1.1運行程序、腳本和已有的工具:shell
Program.exe arguments數組
ScriptName.ps1 argumentside
BatchFile.cmd arguments工具
若是運行的命令名中包含空格,則用引號' 將命令括起來,同時在前邊加上符號&,這稱做調用操做,例:ui
& 'C:\Program Files\Program\Program.exe' arguments命令行
運行當前目錄下的文件debug
.\Program.exe arguments調試
運行當前目錄下那些命令名中包含空格的命令,同時加上符號&和.\,例:日誌
& '.\Program Files\Program\Program.exe' argumentscode
在PowerShell提示符下,進行表達式運算:
1.2 運行PowerShell命令
Get-Process命令是一個內置的PowerShell命令,稱之爲cmdlet,爲管理員和開發人員提供了重要的功能。
1>採用同一的命令語法
2>支持豐富的管道功能
3>輸出易於管理的對象,而不是容易出錯的文本
1.3 自動以shell、配置文件與提示符
PowerShell默認將你的腳本文件的地址存放在$profile變量中,能夠經過這個變量來訪問腳本文件。
建立新的腳本文件(覆蓋已存在的):
New-Item -type file -force $profile
編輯已存在的文件:
notepad $profile
查看配置腳本文件的內容:
Get-ChildItem $profile
修改控制窗口的標題:
$host.UI.RawUI.WindowTitle ="標題"
修改輸出提示的顏色:
Write-Host -ForegroundColor DarkGray "改變輸出提示的顏色"
1.4 查找實現指定任務的命令
得到指定命令的概要信息:
Get-Command CommandName
得到指定命令的詳細信息,將Get-Command的輸出結果重定向到Format-List命令:
Get-Command CommandName | Format-List
想搜索包含"text"的全部命令,用星號*,例:
Get-Command *text*
想搜索全部使用Get動詞的命令,在-Verb後輸入參數Get,以下:
Get-Command -Verb Get
想搜索全部與服務有關的命令,在-Noun後加入參數Service,以下:
Get-Command -Noun Service
1.5 得到命令幫助
得到一個命令的概要幫助,主要包括命令的大綱,語法以及細節描述:
Get-Help CommandName
或者 CommandName -?
得到一個命令的幫助信息的詳情,包括參數說明和示例:
Get-Help CommandName-Detailed
得到一個命令的詳細的幫助信息,包含所有參數描述和註釋信息:
Get-Help CommandName -Full
得到一個命令的例子信息,以下:
Get-Help CommandName -Examples
得到更多關於Get-Help的信息:
Get-Help Get-Help
1.7 在PowerShell以外調用PowerShell腳本
從批處理文件、登陸腳本、定時任務或其餘非PowerShell應用程序中調用PowerShell腳本:
PowerShell "& 'full path to script' arguments"
例:PowerShell "& 'C:\shared scripts\Get-Report.ps1' Hello World"
1.9 得到系統日期與時間
Get-Date
檢查今天是星期幾,以下:
$date=Get-Date
$date.DayOfWeek
Get-Help Get-Date能夠查看更多關於Get-Date的命令
1.10 檢查最後運行命令的狀態
PowerShell提供了兩個變量來監測最後執行的命令是否成功,這兩個變量是$lastExitCode和$?
變量$lastExitCode:
數字型,它返回最後腳本或應用程序執行返回的退出碼或出錯級別
變量是$?:
布爾型,返回最後執行命令的成功true或失敗false
1.11 計算命令執行的時間
計算一個命令執行的時間:
Measure-Command { Start-Sleep -Milliseconds 337 }
1.12 PowerShell快捷鍵
Up 向前搜索歷史命令
Down 向後搜索歷史命令
PgUp 顯示歷史命令中第一個命令
PgDown 顯示歷史命令中最後一個命令
Left 把光標向左移動一個字符
Right 把光標向右移動一個字符
Home 在命令行中,把光標移到開始位置
End 在命令行中,把光標移到結束位置
Ctrl+Left 把光標向左移動一個單詞
Ctrl+Right 把光標向右移動一個單詞
1.14 使用與管理控制檯歷史
得到最近使用的命令:
Get-History
從歷史命令中得到指定的某個命令,能夠將命令的ID傳給Invoke-History,以下:
Invoke-History Id
經過給$MaximumHistoryCount賦值,能夠增長或限制會話歷史中存儲命令的數量
$MaximumHistoryCount =Count
保存歷史命令到文件,可使用管道命令:
Get-History | Export-CliXml Filename
將已經保存的命令加載到控制檯,利用管道重定向便可
Import-CliXml Filename | Add-History
1.15 將命令的輸出保存到文件
經過Out-File命令或者重定向操做符將命令輸出的結果保存到文件中
Out-File
Get-ChildItem | Out-File unicodeFile.txt
Get-Content filename.cs | Out-File -Encoding ASCII File.txt
Get-ChildItem | Out-File-Width 120 unicodeFile.cs
重定向操做符
Get-ChildItem > file.txt
Get-ChildItem 2> file.txt
1.16 向文件的結尾處加入信息
將管道輸出定向到文件中,而且在文件後面追加信息
使用Out-File命令的參數-Append
Get-ChildItem | Out-File -Append files.txt
重定向操做符
Get-ChildItem >> files.txt
1.17 記錄你的會話全文
記錄當前會話的日誌或全文
Start-Transcript path
Stop-Transcript
path是可選項,用來指定記錄的文件名,它基於當前的系統時間。默認狀況下,將這個文件保存到My Documents目錄下,若是想中止記錄,則Stop-Transcript。
1.18 將某一項的屬性顯示成列表
顯示一個項的詳細信息,可使用管道命令功能把項輸出給Format-List命令,例如:
$currentError=$error[0]
$currentError | Format-List -Force
PowerShell中有三種格式化命令:Format-Table、Format-Wide和Format-List,Format-List得到輸入將以列表方式顯示出來。
默認狀況下,PowerShell從安裝目錄下的*.format.ps1xml文件中得到要顯示的屬性。若是想顯示全部的屬性,能夠鍵入Format-List *。
有些時候你鍵入了Format-List *,可是不能得到項的屬性列表,這種狀況的出現是因爲在*.format.ps1xml文件中定義了項,可是沒有定義任何在列表命令中藥顯示的條目,
這種狀況下,能夠鍵入Format-List -Force
1.19 將某一項的屬性顯示成表格
將命令的輸出以管道方式輸出給Format-Table,以下:
Get-Process | Format-Table
顯示特定的屬性
Get-Process | Format-Table Name,WS
通知PowerShell以最易閱讀的方式來格式化表格,能夠提供-Auto參數給Format-Table
Get-Process | Format-Table Name,WS -Auto
自定義列(以兆爲單位顯示一個進程的工做集),能夠提供一個自定義的格式
$fields="Name",@{Label="WS (MB)"; Expression={$_.WS / 1mb}; Align="Right"}
Get-Process | Format-Table $fields -Auto
1.20 管道命令的錯誤輸出
列出當前會話列表中發生的全部錯誤,可訪問$error數組:
$error
列出會話列表中最後發生的錯誤,即訪問$error數組中的第一個值
$error[0]
列出錯誤的詳細信息,以管道方式輸出給Format-List,注意要加上-Force
$currentError=$error[0]
$currentError | Format-List -Force
列出引發錯誤的命令的詳細信息,能夠訪問InvocationInfo屬性
$currentError=$error[0]
$currentError.InvocationInfo
以更加簡潔的基於分類的方式顯示錯誤,修改變量$errorView的值
$errorView="CategoryView"
清除PowerShell產生的錯誤
$error.Clear()
1.21 配置調試、校驗和處理輸出
啓動腳本和生成它的命令的調試信息的輸出
$debugPreference="Contiune"
Start-DebugCommand
啓用命令的校驗模式
Copy-Item c:\temp\*.txt c:\temp\backup\ -Verbose
禁用腳本或命令產生的進度信息
$progressPreference ="SilentlyContinue"
Ger-Process.ps1
處理產生錯誤輸出以外,許多腳本和命令還生成其餘幾種輸出,包括:
調試輸出:診斷問題
Write-Debug
或調用WriteDebug()
輸出這類信息。除非經過$host.PrivateData.Debug*顏色配置變量來定義輸出信息的顏色,不然會以黃色顯示這類信息
驗證輸出:監視命令的動做
Write-Verbose
或調用WriteVerbose()
輸出這類信息,除非經過$host.PrivateData.Verbose*顏色配置變量來定義輸出信息的顏色,不然會以黃色顯示這類信息
進度輸出:監視長時間運行的命令的狀態
Write-Process
或者調用WriteProgress()
輸出這類信息,除非經過$host.PrivateData.Progress*顏色配置變量來定義輸出信息的顏色,不然會以黃色顯示這類信息
一些命令只有在分別指定-Verbose或-Debug參數後纔會產生炎症或調試信息。爲了配置腳本或命令的調試、驗證或進度信息,能夠經過修改shell變量
$debugPreference、$verbosePreference和$progressPreference來達到目的,這些變量可接受的值有:
安靜模式(silentlyContinue): 不顯示輸出信息
中止模式(stop):將輸出視爲錯誤
繼續模式(continue):顯示輸出
詢問模式(inquire):顯示繼續操做信息