Powershell腳本中使用條件斷點(diǎn)實(shí)例
適用于PowerShell 3.0或者更高版本!
PowerShell ISE只支持行斷點(diǎn):它可以讓腳本運(yùn)行至特定的調(diào)試行:你可以按F9來(lái)添加或者移除斷點(diǎn)。但是需要保證該腳本已經(jīng)保存過(guò)(默認(rèn)的無(wú)標(biāo)題文件可能就不行)。
還有一種更加高級(jí)的方法:動(dòng)態(tài)斷點(diǎn)或者說(shuō)是條件斷點(diǎn),其中沒(méi)有特別限定某行,而是限定于一種特定的場(chǎng)景。比如下面的的示例腳本,每當(dāng)PowerShell給指定的變量賦值時(shí),就會(huì)擊中斷點(diǎn)停下來(lái):
$bp = Set-PSBreakpoint -Variable a -Mode Write -Script $psise.CurrentFile.FullPath
$a = 1
$a
$a
$a = 200
$a
Remove-PSBreakpoint -Breakpoint $bp
你還可以綁定更加高級(jí)和復(fù)雜的條件,比如你想當(dāng)一個(gè)大于100的整數(shù)賦值給$a時(shí),擊中斷點(diǎn):
$Condition = { if ($a -is [Int] -and $a -gt 100) { break } }
$bp = Set-PSBreakpoint -Variable a -Mode Write -Script $psise.CurrentFile.FullPath -Action $Condition
$a = 1
$a
$a
$a = 200
$a
Remove-PSBreakpoint -Breakpoint $bp
荔非苔注:條件斷點(diǎn)這個(gè)技巧比較冷門,但是一旦需要時(shí)卻非常方便,比如我在某個(gè)稍微大點(diǎn)的腳本文件中多次給變量A賦值,可是不知某次賦了個(gè)錯(cuò)誤的值,我想把這行代碼找出來(lái)。如果沒(méi)有條件斷點(diǎn),我可能得關(guān)鍵字搜索出所有變量A的賦值語(yǔ)句,并打上斷點(diǎn),工程浩大,而如果使用條件斷點(diǎn),阿彌陀佛!
相關(guān)文章
PowerShell捕獲錯(cuò)誤的2種方法(異常捕獲命令、錯(cuò)誤變量)
這篇文章主要介紹了PowerShell捕獲錯(cuò)誤的2種方法(異常捕獲命令、錯(cuò)誤變量),需要的朋友可以參考下2014-04-04PowerShell小技巧之添加遠(yuǎn)程防火墻規(guī)則
本文主要介紹了將Windows Server 2012 Core的默認(rèn)控制臺(tái)設(shè)置成了PowerShell后,啟用了遠(yuǎn)程桌面,然后使用PowerShell添加PowerShell遠(yuǎn)程防火墻規(guī)則。希望對(duì)大家能有所幫助。2014-09-09PowerShell中改變F1幫助文檔命令獲取方式為在線文檔的方法
這篇文章主要介紹了PowerShell中改變F1幫助文檔命令獲取方式為在線文檔的方法,本文使用一個(gè)自定義函數(shù)實(shí)現(xiàn)需求,需要的朋友可以參考下2015-03-03探索PowerShell(六) 腳本基礎(chǔ)簡(jiǎn)要
在后續(xù)的教程中,我將主要介紹PowerShell的腳本是如何編寫的。這一節(jié),先做一個(gè)概覽和大體的介紹,今天是假日,就先不寫太多,明天開始逐條講解2012-12-12powershell 將文本轉(zhuǎn)換成表格的另一種可行方式
這篇文章主要介紹了powershell 將文本轉(zhuǎn)換成表格的另一種可行方式,需要的朋友可以參考下2014-08-08探索PowerShell(十四) 使用WMI對(duì)象的方法
上一篇文章中介紹了WMI的基礎(chǔ)內(nèi)容,主要講了WMI的屬性值的查看,文中還提到,WMI不僅具有屬性,還具有方法。這一節(jié)就來(lái)具體講一下如何調(diào)用WMI對(duì)象方法2012-12-12