Set-PSBreakpoint
Satır, komut veya değişken üzerinde kesme noktası ayarlar.
Syntax
Set-PSBreakpoint
[-Action <ScriptBlock>]
[[-Column] <Int32>]
[-Line] <Int32[]>
[-Script] <String[]>
[-Runspace <Runspace>]
[<CommonParameters>]
Set-PSBreakpoint
[-Action <ScriptBlock>]
-Command <String[]>
[[-Script] <String[]>]
[-Runspace <Runspace>]
[<CommonParameters>]
Set-PSBreakpoint
[-Action <ScriptBlock>]
[[-Script] <String[]>]
-Variable <String[]>
[-Mode <VariableAccessMode>]
[-Runspace <Runspace>]
[<CommonParameters>]
Description
Cmdlet, Set-PSBreakpoint
bir betikte veya geçerli oturumdaki herhangi bir komut çalıştırmasında bir kesme noktası ayarlar. Bir betiği yürütmeden veya komut çalıştırmadan önce veya hata ayıklama sırasında başka bir kesme noktasında durdurulduğunda kesme noktası ayarlamak için kullanabilirsiniz Set-PSBreakpoint
.
Set-PSBreakpoint
uzak bilgisayarda kesme noktası ayarlayamıyor. Uzak bilgisayardaki bir betiğin hatalarını ayıklamak için, betiği yerel bilgisayara kopyalayın ve ardından yerel olarak hata ayıklayın.
Her Set-PSBreakpoint
komut aşağıdaki üç kesme noktasından birini oluşturur:
- Satır kesme noktası - Kesme noktalarını belirli satır ve sütun koordinatlarında ayarlar.
- Komut kesme noktası - Komutlarda ve işlevlerde kesme noktalarını ayarlar.
- Değişken kesme noktası - Değişkenlerdeki kesme noktalarını ayarlar.
Tek Set-PSBreakpoint
bir komutta birden çok satır, komut veya değişkende kesme noktası ayarlayabilirsiniz, ancak her Set-PSBreakpoint
komut yalnızca bir kesme noktası türü ayarlar.
Kesme noktasında PowerShell yürütmeyi geçici olarak durdurur ve hata ayıklayıcıya denetim verir. Komut istemi olarak değişir DBG\>
ve bir hata ayıklayıcı komutları kümesi kullanılabilir duruma gelir. Ancak, kesme noktası koşulları veya günlük veya tanılama gibi ek görevleri gerçekleştirme yönergeleri gibi alternatif bir yanıt belirtmek için Eylem parametresini kullanabilirsiniz.
Set-PSBreakpoint
Cmdlet, PowerShell betiklerinde hata ayıklamak için tasarlanmış çeşitli cmdlet'lerden biridir.
PowerShell hata ayıklayıcısı hakkında daha fazla bilgi için bkz . about_Debuggers.
Örnekler
Örnek 1: Satırda kesme noktası ayarlama
Bu örnek, Sample.ps1 betiğinde 5. satırda bir kesme noktası ayarlar. Betik çalıştırıldığında, 5. satır yürütülmeden hemen önce yürütme durdurulur.
Set-PSBreakpoint -Script "sample.ps1" -Line 5
Column : 0
Line : 5
Action :
Enabled : True
HitCount : 0
Id : 0
Script : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1
Satır numarasına göre yeni bir kesme noktası ayarladığınızda Set-PSBreakpoint
, cmdlet kesme noktası kimliğini ve isabet sayısını içeren bir satır kesme noktası nesnesi (System.Management.Automation.LineBreakpoint) oluşturur.
Örnek 2: İşlevde kesme noktası ayarlama
Bu örnek, Sample.ps1 cmdlet'indeki işlevde Increment
bir komut kesme noktası oluşturur. Betik, belirtilen işleve yapılan her çağrıdan hemen önce yürütülürken durur.
Set-PSBreakpoint -Command "Increment" -Script "sample.ps1"
Command : Increment
Action :
Enabled : True
HitCount : 0
Id : 1
Script : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1
Sonuç bir komut kesme noktası nesnesidir. Betik çalıştırılmadan önce HitCount özelliğinin değeri 0'dır.
Örnek 3: Değişkende kesme noktası ayarlama
Bu örnek, Sample.ps1 betiğindeki Sunucu değişkeninde bir kesme noktası ayarlar. Değişkenin değeri okunduğunda ve değer değişmeden hemen önce yürütmeyi durdurmak için ReadWrite değeriyle Mode parametresini kullanır.
Set-PSBreakpoint -Script "sample.ps1" -Variable "Server" -Mode ReadWrite
Örnek 4: Belirtilen metinle başlayan her komutta bir kesme noktası ayarlama
Bu örnek, Sample.ps1 betiğindeki her komutta "yazma" ile başlayan bir kesme noktası ayarlar; örneğin Write-Host
.
Set-PSBreakpoint -Script Sample.ps1 -Command "write*"
Örnek 5: Bir değişkenin değerine bağlı olarak kesme noktası ayarlama
Bu örnek, yalnızca değişkenin DiskTest
değeri 2'den Test.ps1
büyük olduğunda betikteki işlevde yürütmeyi $Disk
durdurur.
Set-PSBreakpoint -Script "test.ps1" -Command "DiskTest" -Action { if ($Disk -gt 2) { break } }
Eylem değeri, işlevdeki değişkenin değerini $Disk
test eden bir betik bloğudur.
Eylem, koşul karşılanırsa yürütmeyi durdurmak için anahtar sözcüğünü kullanır break
. Alternatif (ve varsayılan) Devam'tır.
Örnek 6: İşlevde kesme noktası ayarlama
Bu örnek işlevde CheckLog
bir kesme noktası ayarlar. Komut bir betik belirtmediğinden, kesme noktası geçerli oturumda çalışan her şeyde ayarlanır. Hata ayıklayıcı, işlev bildirildiğinde değil çağrıldığında kesilir.
PS> Set-PSBreakpoint -Command "checklog"
Id : 0
Command : checklog
Enabled : True
HitCount : 0
Action :
function CheckLog {
>> get-eventlog -log Application |
>> where {($_.source -like "TestApp") -and ($_.Message -like "*failed*")}
>>}
>>
PS> Checklog
DEBUG: Hit breakpoint(s)
DEBUG: Function breakpoint on 'prompt:Checklog'
Örnek 7: Birden çok satırda kesme noktaları ayarlama
Bu örnek, Sample.ps1 betiğinde üç satır kesme noktası ayarlar. Betikte belirtilen satırların her birinde 2. sütunda bir kesme noktası ayarlar. Eylem parametresinde belirtilen eylem tüm kesme noktaları için geçerlidir.
PS C:\> Set-PSBreakpoint -Script "sample.ps1" -Line 1, 14, 19 -Column 2 -Action {&(log.ps1)}
Column : 2
Line : 1
Action :
Enabled : True
HitCount : 0
Id : 6
Script : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1
Column : 2
Line : 14
Action :
Enabled : True
HitCount : 0
Id : 7
Script : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1
Column : 2
Line : 19
Action :
Enabled : True
HitCount : 0
Id : 8
Script : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1
Örnek 8: Çalışma alanında kesme noktası ayarlama
Bu örnekte bir iş başlatılır. Runspace bir değişkende depolanır ve Runspace parametresiyle komutuna geçirilirSet-PSBreakPoint
.
Start-Job -ScriptBlock {
Start-Sleep -Seconds 10
}
$runspace = Get-Runspace -Id 1
Set-PSBreakpoint -Command Start-Sleep -Runspace $runspace
Parametreler
-Action
Kesme yerine her kesme noktasında çalışan komutları belirtir. Komutları içeren bir betik bloğu girin. Koşullu kesme noktaları ayarlamak veya test veya günlük kaydı gibi diğer görevleri gerçekleştirmek için bu parametreyi kullanabilirsiniz.
Bu parametre atlanırsa veya hiçbir eylem belirtilmezse, yürütme kesme noktasında durur ve hata ayıklayıcı başlatılır.
Eylem parametresi kullanıldığında, Eylem betiği bloğu her kesme noktasında çalışır. Betik bloğu Break anahtar sözcüğünü içermediği sürece yürütme durdurulmuyor. Betik bloğunda Continue anahtar sözcüğünü kullanırsanız, yürütme sonraki kesme noktasına kadar devam eder.
Daha fazla bilgi için bkz . about_Script_Blocks, about_Break ve about_Continue.
Type: | ScriptBlock |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Column
Betik dosyasında yürütmenin durduğu sütunun sütun numarasını belirtir. Yalnızca bir sütun numarası girin. Varsayılan sütun 1'dir.
Sütun değeri, kesme noktasını belirtmek için Line parametresinin değeriyle birlikte kullanılır. Line parametresi birden çok satır belirtiyorsa, Column parametresi belirtilen satırların her birinde belirtilen sütunda bir kesme noktası ayarlar. PowerShell, belirtilen satır ve sütun konumundaki karakteri içeren deyim veya ifadeden önce yürütmeyi durdurur.
Sütunlar sol üst kenar boşluğundan 1 sütun numarasıyla (0 değil) başlayarak sayılır. Betikte bulunmayan bir sütun belirtirseniz, hata bildirilmez, ancak kesme noktası hiçbir zaman yürütülemez.
Type: | Int32 |
Position: | 2 |
Default value: | 1 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Command
Bir komut kesme noktası ayarlar. gibi cmdlet adları Get-Process
veya işlev adları girin. Joker karakterlere izin verilir.
Yürütme, her komutun her örneği yürütülmeden hemen önce durur. Komut bir işlevse, işlev her çağrıldığında ve her BEGIN, PROCESS ve END bölümünde yürütme durdurulur.
Type: | String[] |
Aliases: | C |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Line
Betikte bir satır kesme noktası ayarlar. Virgülle ayırarak bir veya daha fazla satır numarası girin. PowerShell, belirtilen satırların her birinde başlayan deyimi yürütmeden hemen önce durur.
Satırlar, betik dosyasının sol üst kenar boşluğundan 1 numaralı satırdan (0 değil) başlayarak sayılır. Boş bir satır belirtirseniz, yürütme bir sonraki boş olmayan satırdan önce durur. Satır aralığın dışındaysa kesme noktasına hiçbir zaman isabet olmaz.
Type: | Int32[] |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Mode
Değişken kesme noktalarını tetikleyen erişim modunu belirtir. Varsayılan değer Yazma'dır.
Bu parametre yalnızca komutunda Değişken parametresi kullanıldığında geçerlidir. Mod, komutta ayarlanan tüm kesme noktalarına uygulanır. Bu parametrenin kabul edilebilir değerleri şunlardır:
- Yazma - Değişkene yeni bir değer yazıldıktan hemen önce yürütmeyi durdurur.
- Okuma - Değişken okunduğunda, yani değerine erişildiğinde atanmak, görüntülenmesi veya kullanılması için yürütmeyi durdurur. Okuma modunda, değişkenin değeri değiştiğinde yürütme durmaz.
- ReadWrite - Değişken okunduğunda veya yazıldığında yürütmeyi durdurur.
Type: | VariableAccessMode |
Accepted values: | Read, Write, ReadWrite |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Runspace
Belirtilen çalışma alanında kesme noktalarıyla etkileşim kurabilmeniz için Runspace nesnesinin kimliğini belirtir.
Bu parametre PowerShell 7.2'ye eklendi.
Type: | Runspace |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Script
Bu cmdlet'in kesme noktası ayarlayan bir betik dosyası dizisini belirtir. Bir veya daha fazla betik dosyasının yollarını ve dosya adlarını girin. Dosyalar geçerli dizindeyse yolu atlayabilirsiniz. Joker karakterlere izin verilir.
Varsayılan olarak, değişken kesme noktaları ve komut kesme noktaları geçerli oturumda çalışan herhangi bir komutta ayarlanır. Bu parametre yalnızca bir satır kesme noktası ayarlanırken gereklidir.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Variable
Bu cmdlet'in kesme noktalarını ayarlayan bir değişken dizisini belirtir. Dolar işareti ($
) olmayan değişkenlerin virgülle ayrılmış bir listesini girin.
Kesme noktalarını tetikleyen erişim modunu belirlemek için Mode parametresini kullanın. Varsayılan mod olan Write, değişkene yeni bir değer yazılmadan hemen önce yürütmeyi durdurur.
Type: | String[] |
Aliases: | V |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Girişler
None
Nesneleri bu cmdlet'e yöneltemezsiniz.
Çıkışlar
Set-PSBreakpoint
, ayarlamış olduğu her kesme noktasını temsil eden bir nesne döndürür.
Notlar
PowerShell için aşağıdaki diğer adları Set-PSBreakpoint
içerir:
Tüm platformlar:
sbp
Set-PSBreakpoint
uzak bilgisayarda kesme noktası ayarlayamıyor. Uzak bilgisayardaki bir betiğin hatalarını ayıklamak için, betiği yerel bilgisayara kopyalayın ve ardından yerel olarak hata ayıklayın.Birden fazla satır, komut veya değişkende kesme noktası ayarladığınızda,
Set-PSBreakpoint
her giriş için bir kesme noktası nesnesi oluşturur.Komut isteminde bir işlev veya değişken üzerinde kesme noktası ayarlarken, işlevi veya değişkeni oluşturmadan önce veya sonra kesme noktasını ayarlayabilirsiniz.
İlişkili Bağlantılar
PowerShell
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin