Set-PSBreakpoint
Töréspontot állít be egy vonalon, parancson vagy változón.
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
A Set-PSBreakpoint
parancsmag beállít egy töréspontot egy szkriptben vagy az aktuális munkamenetben futtatott bármely parancsban. A szkript végrehajtása vagy parancs futtatása, illetve hibakeresés közben is beállíthat Set-PSBreakpoint
töréspontot, ha egy másik töréspontnál áll le.
Set-PSBreakpoint
Távoli számítógépen nem lehet töréspontot beállítani. Ha távoli számítógépen szeretne parancsfájlt hibakeresésre telepíteni, másolja a szkriptet a helyi számítógépre, majd helyileg végezze el a hibakeresést.
Minden Set-PSBreakpoint
parancs a következő három törésponttípus egyikét hozza létre:
- Vonaltörési pont – Töréspontokat állít be adott vonal- és oszlopkoordinátákhoz.
- Parancstörési pont – Töréspontokat állít be parancsokon és függvényeken.
- Változótörési pont – A változók töréspontjait állítja be.
Egyetlen parancsban több sorra, parancsra vagy változóra Set-PSBreakpoint
is beállíthat töréspontot, de mindegyik Set-PSBreakpoint
parancs csak egy törésponttípust állít be.
Törésponton a PowerShell ideiglenesen leállítja a végrehajtást, és vezérlést ad a hibakeresőnek. A parancssor a következőre DBG\>
módosul, és a hibakereső parancsok egy készlete elérhetővé válik. A Művelet paraméter használatával azonban megadhat egy alternatív választ, például a töréspont feltételeit, vagy további feladatok, például naplózás vagy diagnosztika elvégzésére vonatkozó utasításokat.
A Set-PSBreakpoint
parancsmag a PowerShell-szkriptek hibakeresésére tervezett számos parancsmag egyike.
A PowerShell-hibakeresővel kapcsolatos további információkért lásd: about_Debuggers.
Példák
1. példa: Töréspont beállítása egy vonalon
Ez a példa egy töréspontot állít be a Sample.ps1 szkript 5. sorába. A szkript futtatásakor a végrehajtás közvetlenül az 5. sor végrehajtása előtt leáll.
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
Amikor sorszám alapján állít be új töréspontot, a Set-PSBreakpoint
parancsmag létrehoz egy sortöréspont-objektumot (System.Management.Automation.LineBreakpoint), amely tartalmazza a töréspont azonosítóját és a találatok számát.
2. példa: Töréspont beállítása függvényen
Ez a példa létrehoz egy parancstörési pontot a Increment
Sample.ps1 parancsmagban található függvényen. A szkript közvetlenül a megadott függvény hívása előtt leáll.
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
Az eredmény egy parancstöréspont-objektum. A szkript futtatása előtt a HitCount tulajdonság értéke 0.
3. példa: Töréspont beállítása változón
Ez a példa egy töréspontot állít be a Server változón a Sample.ps1 szkriptben. A Mode paramétert ReadWrite értékkel használja a végrehajtás leállításához, amikor a változó értéke beolvasva, és éppen az érték megváltozása előtt.
Set-PSBreakpoint -Script "sample.ps1" -Variable "Server" -Mode ReadWrite
4. példa: Töréspont beállítása minden megadott szöveggel kezdődő parancson
Ez a példa egy töréspontot állít be a Sample.ps1 szkript minden olyan parancsára, amely "írással" kezdődik, például Write-Host
.
Set-PSBreakpoint -Script Sample.ps1 -Command "write*"
5. példa: Töréspont beállítása egy változó értékétől függően
Ez a példa csak akkor állítja le a végrehajtást a DiskTest
Test.ps1
szkriptben lévő függvénynél, ha a $Disk
változó értéke nagyobb, mint 2.
Set-PSBreakpoint -Script "test.ps1" -Command "DiskTest" -Action { if ($Disk -gt 2) { break } }
A Művelet értéke egy szkriptblokk, amely a függvény változójának $Disk
értékét ellenőrzi.
A művelet a break
kulcsszó használatával állítja le a végrehajtást, ha a feltétel teljesül. A másik lehetőség (és az alapértelmezett) a Folytatás.
6. példa: Töréspont beállítása függvényen
Ez a példa egy töréspontot állít be a CheckLog
függvényen. Mivel a parancs nem ad meg szkriptet, a töréspont mindenre be van állítva, amely az aktuális munkamenetben fut. A hibakereső nem a deklarálásakor, hanem a függvény meghívásakor szakad meg.
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'
7. példa: Töréspontok beállítása több sorban
Ez a példa három sortörési pontot állít be a Sample.ps1 szkriptben. Egy töréspontot állít be a 2. oszlopban a szkriptben megadott sorok mindegyikén. A Művelet paraméterben megadott művelet az összes töréspontra vonatkozik.
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
8. példa: Töréspont beállítása egy runspace-ben
Ebben a példában egy feladat indul el. A runspace egy változóban van tárolva, és a Runspace paraméterrel továbbítja a Set-PSBreakPoint
parancsnak.
Start-Job -ScriptBlock {
Start-Sleep -Seconds 10
}
$runspace = Get-Runspace -Id 1
Set-PSBreakpoint -Command Start-Sleep -Runspace $runspace
Paraméterek
-Action
Az egyes töréspontokon futtatott parancsokat adja meg törés helyett. Adjon meg egy parancsokat tartalmazó szkriptblokkot. Ezzel a paramétersel feltételes töréspontokat állíthat be, vagy egyéb feladatokat hajthat végre, például tesztelést vagy naplózást.
Ha ez a paraméter nincs megadva, vagy nincs megadva művelet, a végrehajtás leáll a töréspontnál, és elindul a hibakereső.
A Művelet paraméter használatakor a műveletszkriptblokk minden törésponton fut. A végrehajtás csak akkor áll le, ha a szkriptblokk tartalmazza a Break kulcsszót. Ha a szkriptblokkBan a Folytatás kulcsszót használja, a végrehajtás a következő töréspontig folytatódik.
További információ: about_Script_Blocks, about_Break és about_Continue.
Típus: | ScriptBlock |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Column
A szkriptfájl azon oszlopának oszlopszámát adja meg, amelyen a végrehajtás leáll. Csak egy oszlopszámot adjon meg. Az alapértelmezett oszlop az 1. oszlop.
Az Oszlop érték a Sor paraméter értékével együtt használja a töréspont megadásához. Ha a Sor paraméter több sort ad meg, az Oszlop paraméter töréspontot állít be a megadott oszlophoz a megadott sorokon. A PowerShell leállítja a végrehajtást a megadott sor- és oszlophelyzetben lévő karaktert tartalmazó utasítás vagy kifejezés előtt.
Az oszlopok a bal felső margótól kezdve az 1-es oszlopszámmal kezdődnek (nem 0). Ha olyan oszlopot ad meg, amely nem létezik a szkriptben, a rendszer nem deklarálja a hibát, de a töréspont soha nem lesz végrehajtva.
Típus: | Int32 |
Position: | 2 |
Alapértelmezett érték: | 1 |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Command
Parancstörési pontot állít be. Adja meg a parancsmagok nevét, például Get-Process
a függvényneveket. Helyettesítő karakterek használata engedélyezett.
A végrehajtás az egyes parancsok minden példányának végrehajtása előtt leáll. Ha a parancs függvény, a végrehajtás minden alkalommal leáll, amikor a függvényt meghívják, és minden BEGIN, PROCESS és END szakaszban.
Típus: | String[] |
Aliasok: | C |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | True |
-Line
Sortörési pontot állít be egy szkriptben. Írjon be egy vagy több sorszámot vesszővel elválasztva. A PowerShell közvetlenül az egyes sorokon kezdődő utasítás végrehajtása előtt leáll.
A sorok a szkriptfájl bal felső margójáról vannak megszámolva az 1. sortól kezdve (nem 0). Ha üres sort ad meg, a végrehajtás a következő nem üres sor előtt leáll. Ha a vonal kívül esik a tartományon, a töréspontot soha nem éri el.
Típus: | Int32[] |
Position: | 1 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Mode
Meghatározza a változó töréspontokat aktiváló hozzáférési módot. Az alapértelmezett érték az Írás.
Ez a paraméter csak akkor érvényes, ha a változó paramétert használja a parancs. A mód a parancsban beállított összes töréspontra vonatkozik. A paraméter elfogadható értékei a következők:
- Írás – Azonnal leállítja a végrehajtást, mielőtt egy új értéket ír a változóba.
- Olvasás – Leállítja a végrehajtást a változó olvasása, vagyis az érték elérésekor, hozzárendelendő, megjelenítendő vagy használt állapotban. Olvasási módban a végrehajtás nem áll le, amikor a változó értéke megváltozik.
- ReadWrite – Leállítja a végrehajtást a változó olvasása vagy írása közben.
Típus: | VariableAccessMode |
Elfogadott értékek: | Read, Write, ReadWrite |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Runspace
Egy Runspace-objektum azonosítóját adja meg, hogy a megadott futtatótérben használhassa a töréspontokat.
Ez a paraméter a PowerShell 7.2-ben lett hozzáadva.
Típus: | Runspace |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Script
Olyan szkriptfájlok tömbjének megadása, amelyekbe ez a parancsmag töréspontot állít be. Adja meg egy vagy több szkriptfájl elérési útját és fájlnevét. Ha a fájlok az aktuális könyvtárban találhatók, kihagyhatja az elérési utat. Helyettesítő karakterek használata engedélyezett.
Alapértelmezés szerint a változó töréspontok és a parancstörési pontok az aktuális munkamenetben futó parancsokon vannak beállítva. Ez a paraméter csak sortörési pont beállításakor szükséges.
Típus: | String[] |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Variable
Olyan változók tömbje, amelyeken ez a parancsmag töréspontokat állít be. Adja meg a dollárjelek nélküli változók vesszővel tagolt listáját ($
).
A Mode paraméter használatával határozza meg, hogy a hozzáférési mód milyen módon aktiválja a töréspontokat. Az alapértelmezett írási mód leállítja a végrehajtást közvetlenül az új érték változóba írása előtt.
Típus: | String[] |
Aliasok: | V |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
Bevitelek
None
Ehhez a parancsmaghoz nem lehet objektumokat csövezni.
Kimenetek
Set-PSBreakpoint
egy olyan objektumot ad vissza, amely az általa beállított töréspontokat jelöli.
Jegyzetek
A PowerShell a következő aliasokat Set-PSBreakpoint
tartalmazza:
Összes platform:
sbp
Set-PSBreakpoint
Távoli számítógépen nem lehet töréspontot beállítani. Ha távoli számítógépen szeretne parancsfájlt hibakeresésre telepíteni, másolja a szkriptet a helyi számítógépre, majd helyileg végezze el a hibakeresést.Ha több sorra, parancsra vagy változóra állít be töréspontot,
Set-PSBreakpoint
minden bejegyzéshez létrehoz egy töréspont-objektumot.Amikor a parancssorban beállít egy töréspontot egy függvényre vagy változóra, a függvény vagy változó létrehozása előtt vagy után beállíthatja a töréspontot.