Megosztás a következőn keresztül:


Set-PSBreakpoint

Töréspontot állít be egy vonalon, parancson vagy változón.

Syntax

Line (Alapértelmezett)

Set-PSBreakpoint
    [[-Column] <Int32>]
    [-Line] <Int32[]>
    [-Script] <String[]>
    [-Action <ScriptBlock>]
    [<CommonParameters>]

Command

Set-PSBreakpoint
    [[-Script] <String[]>]
    -Command <String[]>
    [-Action <ScriptBlock>]
    [<CommonParameters>]

Variable

Set-PSBreakpoint
    [[-Script] <String[]>]
    -Variable <String[]>
    [-Action <ScriptBlock>]
    [-Mode <VariableAccessMode>]
    [<CommonParameters>]

Description

A Set-PSBreakpoint parancsmag beállít egy töréspontot egy szkriptben vagy az aktuális munkamenet bármely parancsfuttatásában. A Set-PSBreakpoint használatával töréspontot állíthat be egy szkript végrehajtása vagy parancs futtatása előtt, illetve hibakeresés közben, ha egy másik töréspontnál leállt.

Set-PSBreakpoint nem lehet töréspontot beállítani távoli számítógépen. 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 Set-PSBreakpoint parancsban több sorra, parancsra vagy változóra 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 DBG\>változik, é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 diagnosztikák elvégzésére vonatkozó utasításokat.

A Set-PSBreakpoint parancsmag a PowerShell-szkriptek hibakeresésére tervezett parancsmagok 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ában. 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 Sample.ps1 parancsmag Increment függvényén. 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 Kiszolgáló változóhoz a Sample.ps1 szkriptben. A Mód paramétert használja ReadWrite értékével, hogy leállítsák a végrehajtást, amikor a változó értéke beolvasva van, és nem sokkal az érték vá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 Test.ps1 szkript DiskTest függvényéné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 $Disk változójának értékét teszteli.

A művelet a break kulcsszóval állítja le a végrehajtást, ha a feltétel teljesül. A másik (és az alapértelmezett) Folytatás.

6. példa: Töréspont beállítása függvényen

Ez a példa a CheckLog függvény töréspontját állítja be. 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 minden töréspontra érvényes.

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

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 Action 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.

Paramétertulajdonságok

Típus:ScriptBlock
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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éket a Sor paraméter értékével használja a töréspont megadásához. Ha a Sor paraméter több sort határoz meg, a Oszlop paraméter töréspontot állít be a megadott oszlopban az egyes 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.

Paramétertulajdonságok

Típus:Int32
Alapértelmezett érték:1
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

Line
Position:2
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Command

Parancstörési pontot állít be. Adjon meg parancsmagneveket, például Get-Processvagy 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.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:True
DontShow:False
Aliasok:C

Paraméterkészletek

Command
Position:Named
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-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.

Paramétertulajdonságok

Típus:

Int32[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

Line
Position:1
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Mode

Meghatározza a változó töréspontokat aktiváló hozzáférési módot. Az alapértelmezett érték Í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ási – Közvetlenül az új érték változóba írása előtt leállítja a végrehajtást.
  • Olvasási – Leállítja a végrehajtást a változó olvasásakor, vagyis az érték elérésekor, hozzárendelve, megjelenítve vagy használva. 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.

Paramétertulajdonságok

Típus:VariableAccessMode
Alapértelmezett érték:None
Elfogadott értékek:Read, Write, ReadWrite
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

Variable
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

Line
Position:0
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
Command
Position:0
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
Variable
Position:0
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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 Mód paraméter használatával határozza meg a töréspontokat aktiváló hozzáférési módot. 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.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:V

Paraméterkészletek

Variable
Position:Named
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

CommonParameters

Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.

Bevitelek

None

A Set-PSBreakpointnem hajtható végre.

Kimenetek

Breakpoint object (System.Management.Automation.LineBreakpoint, System.Management.Automation.VariableBreakpoint, System.Management.Automation.CommandBreakpoint)

Set-PSBreakpoint egy olyan objektumot ad vissza, amely az általa beállított töréspontokat jelöli.

Jegyzetek

  • Set-PSBreakpoint nem lehet töréspontot beállítani távoli számítógépen. 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.