Set-PSBreakpoint (Microsoft.PowerShell.Utility)
Set-PSBreakpoint
- Modul:
- Microsoft.PowerShell.Utility
Töréspontot állít be egy soron, parancson vagy változón.
Szintaxis
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>]Leírás
A Set-PSBreakpoint parancsmag töréspontot állít be egy szkriptben vagy bármely, az aktuális munkamenetben futtatott parancsban. A Set-PSBreakpoint használatával töréspontot állíthat be egy parancsfájl végrehajtása vagy egy parancs futtatása előtt, vagy hibakeresés közben, amikor egy másik törésponton leáll.
A Set-PSBreakpoint nem tud töréspontot beállítani távoli számítógépen. Egy távoli számítógépen lévő szkript hibakereséséhez 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éspont - Meghatározott vonal- és oszlopkoordinátákon töréspontokat állít be.
- Parancs töréspontja - töréspontokat állít be a parancsokhoz és függvényekhez.
- Változó töréspontja - töréspontokat állít be a változókhoz.
Egyetlen Set-PSBreakpoint parancsban több soron, parancson vagy változón is beállíthat töréspontot, de minden Set-PSBreakpoint parancs csak egy típusú töréspontot állít be.
Egy törésponton a PowerShell ideiglenesen leállítja a végrehajtást, és átadja a vezérlést a hibakeresőnek. A parancssor a következőre változik: DBG\>, és egy sor hibakereső parancs elérhetővé válik. Az Action paraméter segítségével azonban megadhat egy alternatív választ, például a töréspont feltételeit vagy utasításokat további feladatok, például naplózás vagy diagnosztika végrehajtásához.
A Set-PSBreakpoint parancsmag egyike a PowerShell-szkriptek hibakeresésére tervezett parancsmagoknak. A PowerShell hibakeresővel kapcsolatos további információkért lásd: about_Debuggers.
Példák
1. példa: Állítson be egy töréspontot egy vonalon
Ez a példa egy töréspontot állít be a Sample.ps1 szkript 5. sorában. Amikor a szkript fut, 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.ps1Ha új töréspontot állít be sorszám alapján, 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álatot. gróf.
2. példa: Állítson be egy töréspontot egy függvényen
Ez a példa parancstöréspontot hoz létre a Sample.ps1 parancsmag Increment függvényében. A parancsfájl végrehajtása közvetlenül a megadott függvény minden egyes 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.ps1Az eredmény egy parancstöréspont objektum. A szkript futása előtt a HitCount tulajdonság értéke 0.
3. példa: Állítson be töréspontot egy változón
Ez a példa töréspontot állít be a Sample.ps1 szkript Server változóján. A Mode paramétert használja ReadWrite értékkel, hogy leállítsa a végrehajtást a változó értékének beolvasásakor és közvetlenül az érték változása előtt.
Set-PSBreakpoint -Script "sample.ps1" -Variable "Server" -Mode ReadWrite4. példa: Állítson be töréspontot minden parancshoz, amely meghatározott szöveggel kezdődik
Ez a példa beállít egy töréspontot a Sample.ps1 szkript minden olyan parancsához, amely "write"-vel kezdődik, például Write-Host.
Set-PSBreakpoint -Script Sample.ps1 -Command "write*"5. példa: Állítson be egy töréspontot 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 függvénynél a Test.ps1 szkriptben, ha a $Disk változó értéke nagyobb, mint 2.
Set-PSBreakpoint -Script "test.ps1" -Command "DiskTest" -Action { if ($Disk -gt 2) { break } }Az Action értéke egy szkriptblokk, amely a függvényben lévő $Disk változó értékét teszteli.
A művelet a break kulcsszót használja a végrehajtás leállításához, ha a feltétel teljesül. Az alternatíva (és az alapértelmezett) a Folytatás.
6. példa: Állítson be egy töréspontot egy függvényen
Ez a példa töréspontot állít be a CheckLog függvényben. Mivel a parancs nem ad meg parancsfájlt, a töréspontot mindenre beállítja, ami az aktuális munkamenetben fut. A hibakereső akkor szakad meg, amikor a függvény hívódik, nem pedig a deklaráláskor.
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: Állítson be töréspontokat több sorban
Ez a példa három sortöréspontot állít be a Sample.ps1 szkriptben. Egy töréspontot állít be a 2. oszlopban a szkriptben megadott sorok mindegyikén. Az Action paraméterben megadott művelet minden 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.ps18. példa: Állítson be egy töréspontot egy futási területen
Ebben a példában egy feladat elindul. A futási területet a rendszer egy változóban tárolja, és átadja a Set-PSBreakPoint parancsnak a Runspace paraméterrel.
Start-Job -ScriptBlock {
Start-Sleep -Seconds 10
}
$runspace = Get-Runspace -Id 1
Set-PSBreakpoint -Command Start-Sleep -Runspace $runspaceParaméterek
-Action
Meghatározza azokat a parancsokat, amelyek minden törésponton futnak törés helyett. Adjon meg egy parancsfájl blokkot, amely tartalmazza a parancsokat. Ezzel a paraméterrel feltételes töréspontokat állíthat be, vagy más feladatokat hajthat végre, például tesztelést vagy naplózást.
Ha ez a paraméter kimarad, vagy nincs megadva művelet, a végrehajtás leáll a törésponton, és elindul a hibakereső.
Ha az Action paramétert használja, az Action script blokk minden törésponton lefut. A végrehajtás csak akkor áll le, ha a szkriptblokk tartalmazza a Break kulcsszót. Ha a Continue kulcsszót használja a parancsfájlblokkban, a végrehajtás a következő töréspontig folytatódik.
További információért lásd: about_Script_Blocks, about_Break és about_Continue.
- Típus:
ScriptBlock
- Pozíció:
Elnevezett
- Alapértelmezett érték:
-
None
- Kívánt:
False
- Csővezeték bevitel elfogadása:
False
- Helyettesítő karakterek elfogadása:
False
-Column
Megadja a parancsfájl azon oszlopának oszlopszámát, amelyen a végrehajtás leáll. Csak egy oszlopszámot írjon be. Az alapértelmezett az 1. oszlop.
Az Oszlop érték a Vonal paraméter értékével együtt használatos a töréspont megadásához. Ha a Line paraméter több sort ad meg, az Oszlop paraméter beállít egy töréspontot az egyes sorok megadott oszlopában. A PowerShell leállítja a végrehajtást a megadott sor- és oszloppozícióban szereplő karaktert tartalmazó utasítás vagy kifejezés előtt.
Az oszlopok számolása a bal felső margótól kezdődően az 1. oszloppal kezdődik (nem 0). Ha olyan oszlopot ad meg, amely nem létezik a szkriptben, a rendszer nem deklarál hibát, de a töréspont soha nem kerül végrehajtásra.
- Típus:
Int32
- Pozíció:
2
- Alapértelmezett érték:
1
- Kívánt:
False
- Csővezeték bevitel elfogadása:
False
- Helyettesítő karakterek elfogadása:
False
-Command
Parancstöréspontot állít be. Adjon meg parancsmagneveket, például Get-Process vagy függvényneveket. Helyettesítő karakterek megengedettek.
A végrehajtás közvetlenül az egyes parancsok minden példányának végrehajtása előtt áll le. Ha a parancs egy függvény, a végrehajtás leáll minden alkalommal, amikor a függvényt meghívják, és minden BEGIN, PROCESS és END szakaszban leáll.
- Típus:
String[]
- Álnevek:
C
- Pozíció:
Elnevezett
- Alapértelmezett érték:
None
- Kívánt:
True
- Csővezeték bevitel elfogadása:
False
- Helyettesítő karakterek elfogadása:
True
-Line
Sortöréspontot állít be a szkriptben. Adjon meg egy vagy több sorszámot, vesszővel elválasztva. A PowerShell közvetlenül a megadott sorokon kezdődő utasítás végrehajtása előtt leáll.
A sorokat a szkriptfájl bal felső margójától számítja a program, amely az 1-es sorszámmal kezdődik (nem 0). Ha üres sort ad meg, a végrehajtás leáll a következő nem üres sor előtt. Ha a vonal tartományon kívül esik, a töréspontot soha nem éri el.
- Típus:
Int32[]
- Pozíció:
1
- Alapértelmezett érték:
None
- Kívánt:
True
- Csővezeték bevitel elfogadása:
False
- Helyettesítő karakterek elfogadása:
False
-Mode
Meghatározza a hozzáférési módot, amely változó töréspontokat vált ki. Az alapértelmezett az Írás.
Ez a paraméter csak akkor érvényes, ha a parancsban a Változó paraméter szerepel. A mód a parancsban beállított összes töréspontra vonatkozik. Ennek a paraméternek az elfogadható értékei:
- Írás - Közvetlenül leállítja a végrehajtást, mielőtt új értéket írna a változóba.
- Olvasás - Leállítja a végrehajtást a változó beolvasásakor, azaz amikor hozzáférnek az értékéhez, hozzárendelésre, megjelenítésre vagy felhasználásra. Olvasási módban a végrehajtás nem áll le, ha a változó értéke megváltozik.
- ReadWrite - Leállítja a végrehajtást, amikor a változót olvassák vagy írják.
- Típus:
VariableAccessMode
- Elfogadott értékek:
Olvass, Írj, Olvass Írj
- Pozíció:
Elnevezett
- Alapértelmezett érték:
None
- Kívánt:
False
- Csővezeték bevitel elfogadása:
False
- Helyettesítő karakterek elfogadása:
False
-Runspace
Megadja egy Runspace objektum azonosítóját, hogy interakcióba léphessen a megadott futási területen lévő töréspontokkal.
Ezt a paramétert a PowerShell 7.2-ben adták hozzá.
- Típus:
Runspace
- Pozíció:
Elnevezett
- Alapértelmezett érték:
None
- Kívánt:
False
- Csővezeték bevitel elfogadása:
False
- Helyettesítő karakterek elfogadása:
False
-Script
Megadja a parancsfájlok azon tömbjét, amelyben ez a parancsmag töréspontot állít be. Adja meg egy vagy több parancsfájl elérési útját és fájlnevét. Ha a fájlok az aktuális könyvtárban vannak, elhagyhatja az elérési utat. Helyettesítő karakterek megengedettek.
Alapértelmezés szerint a változó töréspontok és a parancsok töréspontjai az aktuális munkamenetben futó bármely parancsnál be vannak állítva. Ez a paraméter csak vonaltöréspont beállításakor szükséges.
- Típus:
String[]
- Pozíció:
0
- Alapértelmezett érték:
None
- Kívánt:
False
- Csővezeték bevitel elfogadása:
False
- Helyettesítő karakterek elfogadása:
False
-Variable
Változótömböt ad meg, amelyre ez a parancsmag töréspontokat állít be. Adja meg a változók vesszővel elválasztott listáját dollárjelek nélkül ($).
Használja a Mode paramétert a töréspontokat kiváltó hozzáférési mód meghatározásához. Az alapértelmezett mód, a Write, leállítja a végrehajtást közvetlenül azelőtt, hogy új értéket írna a változóba.
- Típus:
String[]
- Álnevek:
V
- Pozíció:
Elnevezett
- Alapértelmezett érték:
None
- Kívánt:
True
- Csővezeték bevitel elfogadása:
False
- Helyettesítő karakterek elfogadása:
False
Bemenetek
Nincs
Ehhez a parancsmaghoz nem lehet objektumokat vezetni.
Kimenetek
CommandBreakpoint
LineBreakpoint
VariableBreakpoint
A Set-PSBreakpoint egy objektumot ad vissza, amely minden beállított töréspontot képvisel.
Megjegyzések
A PowerShell a következő álneveket tartalmazza a Set-PSBreakpoint számára:
Minden platform:
sbp
A Set-PSBreakpoint nem tud töréspontot beállítani távoli számítógépen. Egy távoli számítógépen lévő szkript hibakereséséhez másolja a szkriptet a helyi számítógépre, majd helyileg végezze el a hibakeresést.
Ha egynél több sorban, parancsban vagy változóban állít be töréspontot, a Set-PSBreakpoint minden bejegyzéshez létrehoz egy töréspont objektumot.
Ha töréspontot állít be egy függvényen vagy változón a parancssorban, beállíthatja a töréspontot a függvény vagy változó létrehozása előtt vagy után.