適用于PowerShell 3.0或者更高版本!
PowerShell ISE只支持行斷點:它可以讓腳本運行至特定的調試行:你可以按F9來添加或者移除斷點。但是需要保證該腳本已經保存過(默認的無標題文件可能就不行)。
還有一種更加高級的方法:動態斷點或者說是條件斷點,其中沒有特別限定某行,而是限定于一種特定的場景。比如下面的的示例腳本,每當PowerShell給指定的變量賦值時,就會擊中斷點停下來:
復制代碼 代碼如下:
$bp = Set-PSBreakpoint -Variable a -Mode Write -Script $psise.CurrentFile.FullPath
$a = 1
$a
$a
$a = 200
$a
Remove-PSBreakpoint -Breakpoint $bp
你還可以綁定更加高級和復雜的條件,比如你想當一個大于100的整數賦值給$a時,擊中斷點:
復制代碼 代碼如下:
$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
荔非苔注:條件斷點這個技巧比較冷門,但是一旦需要時卻非常方便,比如我在某個稍微大點的腳本文件中多次給變量A賦值,可是不知某次賦了個錯誤的值,我想把這行代碼找出來。如果沒有條件斷點,我可能得關鍵字搜索出所有變量A的賦值語句,并打上斷點,工程浩大,而如果使用條件斷點,阿彌陀佛!