Legt einen Haltepunkt für eine Zeile, einen Befehl oder eine Variable fest. (Set-PSBreakpoint)

   

NAME
Set-PSBreakpoint

# ÜBERSICHT
Legt einen Haltepunkt für eine Zeile, einen Befehl oder eine Variable fest.

# SYNTAX
Set-PSBreakpoint -Command <string[]> [[-Script] <string[]>] [-Action <scriptblock>] [<CommonParameters>]

Set-PSBreakpoint [-Script] <string[]> [-Line] <Int32[]> [[-Column] <int>] [-Action <scriptblock>] [<CommonParameters>]

Set-PSBreakpoint -Variable <string[]> [[-Script] <string[]>] [-Mode {Read | Write | ReadWrite}] [-Action <scriptblock>] [<CommonParameters>]

# BESCHREIBUNG
Mit dem Cmdlet "Set-PSBreakpoint" wird ein Haltepunkt in einem Skript oder einem beliebigen Befehl festgelegt, das bzw. der in der aktuellen Sitzung ausgeführt wird. Vor dem Ausführen eines Skripts oder eines Befehls oder wenn die Ausführung während des Debuggens an einem anderen Haltepunkt angehalten wird, können Sie mithilfe von Set-PSBreakpoint einen Haltepunkt festlegen.

Hinweis: Mit Set-PSBreakpoint kann kein Haltepunkt auf einem Remotecomputer festgelegt werden. Um ein Skript auf einem Remotecomputer zu debuggen, kopieren Sie das Skript auf den lokalen Computer, und debuggen Sie es dann lokal.

Mit dem Befehl "Set-PSBreakpoint" wird immer einer der folgenden drei Typen von Haltepunkten erstellt:
- Zeilenhaltepunkt: Legt Haltepunkte an bestimmten Zeilen- und Spaltenkoordinaten fest.
- Befehlshaltepunkt: Legt Haltepunkte für Befehle und Funktionen fest.
- Variablenhaltepunkt: Legt Haltepunkte für Variablen fest.

Sie können in einem einzelnen Befehl "Set-PSBreakpoint" einen Haltepunkt für mehrere Zeilen, Befehle oder Variablen festlegen, jedoch wird mit dem Befehl "Set-PSBreakpoint" immer nur ein Typ von Haltepunkt festgelegt.

Bei einem Haltepunkt wird die Ausführung von Windows PowerShell vorübergehend beendet, und die Steuerung wird an den Debugger übergeben. Die Eingabeaufforderung ändert sich in "DBG>", und ein Satz von Debuggerbefehlen kann nun verwendet werden. Sie können jedoch mit dem Action-Parameter eine alternative Reaktion angeben, z. B. Bedingungen für den Haltepunkt oder Anweisungen zum Ausführen zusätzlicher Aufgaben, beispielsweise Protokollierung oder Diagnose.

Das Cmdlet "Set-PSBreakpoint" ist eines von mehreren Cmdlets zum Debuggen von Windows PowerShell-Skripten. Weitere Informationen über den Windows PowerShell-Debugger finden Sie unter "about_Debuggers".

# PARAMETER
-Action <scriptblock>
Gibt Befehle an, die an jedem Haltepunkt ausgeführt werden, statt die Ausführung anzuhalten. Geben Sie einen Skriptblock ein, der die Befehle enthält. Sie können diesen Parameter verwenden, um bedingte Haltepunkte festzulegen oder andere Aufgaben auszuführen, z. B. Testen oder Protokollieren.

Wenn dieser Parameter weggelassen oder keine Aktion angegeben wird, wird die Ausführung am Haltepunkt angehalten, und der Debugger wird gestartet.

Bei Verwendung des Action-Parameters wird an jedem Haltepunkt der Action-Skriptblock ausgeführt. Die Ausführung wird nur angehalten, wenn der Skriptblock das Break-Schlüsselwort enthält. Wenn Sie das Continue-Schlüsselwort im Skriptblock verwenden, wird die Ausführung bis zum nächsten Haltepunkt fortgesetzt.

Weitere Informationen finden Sie unter "about_Script_Blocks", "about_Break" und "about_Continue".

Erforderlich? false
Position? named
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false

-Column <int>
Gibt die Spaltennummer der Spalte in der Skriptdatei an, bei der die Ausführung angehalten wird. Geben Sie nur eine Spaltennummer ein. Der Standardwert ist Spalte 1.

Zum Angeben des Haltepunkts wird der Column-Wert mit dem Wert des Line-Parameters verwendet. Wenn der Line-Parameter mehrere Zeilen angibt, legt der Column-Parameter für jede der angegebenen Zeilen einen Haltepunkt in der angegebenen Spalte fest. Die Ausführung von Windows PowerShell wird vor der Anweisung oder dem Ausdruck angehalten, der bzw. die das Zeichen an der angegebenen Zeilen- und Spaltenposition enthält.

Spalten werden ab Spaltennummer 1 (nicht 0) vom oberen linken Rand gezählt. Wenn Sie eine Spalte angeben, die im Skript nicht vorhanden ist, wird kein Fehler deklariert, der Haltepunkt wird jedoch nie ausgeführt.

Erforderlich? false
Position? 3
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false

-Command <string[]>
Legt einen Befehlshaltepunkt fest. Geben Sie Befehlsnamen, z. B. "Get-Process", oder Funktionsnamen ein. Platzhalter sind zulässig.

Die Ausführung wird direkt vor dem Ausführen der einzelnen Instanzen jedes Befehls angehalten. Wenn der Befehl eine Funktion ist, wird die Ausführung bei jedem Aufruf der Funktion und bei jedem BEGIN-, PROCESS- und END-Abschnitt angehalten.

Erforderlich? true
Position? named
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?true

-Line <Int32[]>
Legt einen Zeilenhaltepunkt in einem Skript fest. Geben Sie eine oder mehrere durch Trennzeichen getrennte Zeilennummern ein. Windows PowerShell wird direkt vor dem Ausführen der Anweisung angehalten, die in der jeweiligen angegebenen Zeile beginnt.

Zeilen werden vom oberen linken Rand der Skriptdatei ab Zeilennummer 1 (nicht 0) gezählt. Wenn Sie eine Leerzeile angeben, wird die Ausführung vor der nächsten nicht leeren Zeile angehalten. Wenn die Zeile außerhalb des Bereichs liegt, wird der Haltepunkt nie erreicht.

Erforderlich? true
Position? 2
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false

-Mode <VariableAccessMode>
Bestimmt den Zugriffsmodus zum Auslösen von Variablenhaltepunkten. Der Standardwert ist "Write".

Dieser Parameter ist nur gültig, wenn der Variable-Parameter im Befehl verwendet wird. Der Modus gilt für alle festgelegten Haltepunkte in dem Befehl.

Gültige Werte:

- Write: Beendet die Ausführung sofort, bevor ein neuer Wert in die Variable geschrieben wird.

- Read: Beendet die Ausführung, wenn die Variable gelesen wird, d. h, wenn auf ihren Wert zugegriffen wird, um ihn zuzuweisen, anzuzeigen oder zu verwenden. Im Modus "Read" wird die Ausführung nicht angehalten, wenn sich der Wert der Variablen ändert.

- ReadWrite: Beendet die Ausführung, wenn die Variable gelesen oder geschrieben wird.

Erforderlich? false
Position? named
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false

-Script <string[]>
Legt in jeder der angegebenen Skriptdateien einen Haltepunkt fest. Geben Sie Pfade und Dateinamen einer oder mehrerer Skriptdateien ein. Wenn sich die Dateien im aktuellen Verzeichnis befinden, können Sie den Pfad weglassen. Platzhalter sind zulässig.

Standardmäßig werden Variablenhaltepunkte und Befehlshaltepunkte für einen beliebigen Befehl festgelegt, der in der aktuellen Sitzung ausgeführt wird. Dieser Parameter ist nur erforderlich, wenn ein Zeilenhaltepunkt festgelegt wird.

Erforderlich? false
Position? 1
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?true

-Variable <string[]>
Legt einen Variablenhaltepunkt fest. Geben Sie eine durch Trennzeichen getrennte Liste von Variablen ohne Dollarzeichen ($) ein.

Bestimmen Sie den Zugriffsmodus zum Auslösen der Haltepunkte mithilfe der Mode-Parameter. Im Standardmodus "Write" wird die Ausführung angehalten, bevor ein neuer Wert in die Variable geschrieben wird.

Erforderlich? true
Position? named
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false

<CommonParameters>
Dieses Cmdlet unterstützt folgende allgemeine Parameter: "Verbose", "Debug",
"ErrorAction", "ErrorVariable", "WarningAction", "WarningVariable",
"OutBuffer" und "OutVariable". Weitere Informationen
erhalten Sie mit dem Befehl "get-help about_commonparameters".

# EINGABEN
Keiner
Eingaben können nicht über die Pipeline an Set-PSBreakpoint übergeben werden.

# AUSGABEN
Haltepunktobjekt (System.Management.Automation.LineBreakpoint, System.Management.Automation.VariableBreakpoint, System.Management.Automation.CommandBreakpoint)
Set-PSBreakpoint gibt ein Objekt zurück, das die einzelnen festgelegten Haltepunkt darstellt.

# HINWEISE

Mit Set-PSBreakpoint kann kein Haltepunkt auf einem Remotecomputer festgelegt werden. Um ein Skript auf einem Remotecomputer zu debuggen, kopieren Sie das Skript auf den lokalen Computer, und debuggen Sie es dann lokal.

Wenn Sie einen Haltepunkt für mehrere Zeilen, Befehle oder Variablen festlegen, generiert Set-PSBreakpoint für jeden Eintrag ein Haltepunktobjekt.

Wenn Sie einen Haltepunkt für eine Funktion oder Variable an der Eingabeaufforderung festlegen, können Sie den Haltepunkt vor oder nach dem Erstellen der Funktion bzw. Variablen festlegen.

# BEISPIEL 1

C:\PS>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

Beschreibung
-----------
Mit diesem Befehl wird ein Haltepunkt im Skript "Sample.ps1" in Zeile 5 festgelegt. Folglich wird die Ausführung des Skripts direkt vor Zeile 5 angehalten.

Wenn Sie einen neuen Haltepunkt nach Zeilennummer festlegen, generiert das Cmdlet "Set-PSBreakpoint" ein Zeilenhaltepunktobjekt (System.Management.Automation.LineBreakpoint), das die Haltepunkt-ID und die Trefferanzahl enthält, wie in der folgenden Beispielausgabe angezeigt.

# BEISPIEL 2

C:\PS>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

Beschreibung
-----------
Mit diesem Befehl wird ein Befehlshaltepunkt für die Increment-Funktion im Skript "Sample.ps1" erstellt. Die Ausführung des Skripts wird direkt vor jedem Aufruf der angegebenen Funktion angehalten.

Das Ergebnis ist ein Befehlshaltepunktobjekt. Vor der Ausführung des Skripts ist der Wert der HitCount-Eigenschaft 0.

# BEISPIEL 3

C:\PS>set-psbreakpoint -script sample.ps1 -variable Server -Mode ReadWrite

Beschreibung
-----------
Mit diesem Befehl wird ein Haltepunkt für die Variable "Server" im Skript "Sample.ps1" festgelegt. Er verwendet den Mode-Parameter mit dem Wert "ReadWrite", um die Ausführung direkt vor dem Ändern des Werts der Variablen sowie beim Lesen des Werts zu beenden.

# BEISPIEL 4

C:\PS>set-psbreakpoint -script Sample.ps1 -command "write*"

Beschreibung
-----------
Mit diesem Befehl wird ein Haltepunkt für jeden Befehl im Skript "Sample.ps1" festgelegt, der mit "write" beginnt, z. B. "write-host".

# BEISPIEL 5

C:\PS>set-psbreakpoint -script test.ps1 -command DiskTest `
-action { (if $disk -gt 2) { break } }

Beschreibung
-----------
Mit diesem Befehl wird die Ausführung an der Funktion "DiskTest" im Skript "Test.ps1" nur beendet, wenn der Wert der Variablen "$disk" größer als 2 ist.

Mit dem Cmdlet "Set-PSBreakpoint" wird ein Befehlshaltepunkt für die Funktion "DiskTest" festgelegt. Der Wert der Aktion ist ein Skriptblock, mit dem der Wert der Variablen "$disk" in der Funktion überprüft wird.

Die Aktion beendet die Ausführung mithilfe des BREAK-Schlüsselworts, wenn die Bedingung erfüllt ist. Die Alternative (und der Standardwert) ist CONTINUE.

# BEISPIEL 6

C:\PS>set-psbreakpoint -command checkpoint-computer

Id : 0
Command : checkpoint-computer
Enabled : True
HitCount : 0
Action :

C:\PS> function CheckLog {
>> get-eventlog -log Application |
>> where {($_.source -like "TestApp") -and ($_.Message -like "*failed*")}
>>}
>>
C:\PS> Checklog
DEBUG: Hit breakpoint(s)
DEBUG: Function breakpoint on 'prompt:Checklog'
C:\PS>>>

Beschreibung
-----------
Mit diesem Befehl wird ein Haltepunkt für die Funktion "CheckLog" festgelegt. Da der Befehl kein Skript angibt, wird der Haltepunkt für jedes in der aktuellen Sitzung ausgeführte Element festgelegt. Der Debugger wird unterbrochen, wenn die Funktion aufgerufen wird, nicht wenn sie deklariert wird.

# BEISPIEL 7

C:\PS>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

Beschreibung
-----------
Mit diesem Befehl werden drei Zeilenhaltepunkte im Skript "Sample.ps1" festgelegt. Für jede angegebene Zeile im Skript wird ein Haltepunkt in Spalte 2 festgelegt. Die im Action-Parameter angegebene Aktion wird auf alle Haltepunkte angewendet.

VERWANDTE LINKS
Online version: http://go.microsoft.com/fwlink/?LinkID=113449 (möglicherweise auf Englisch)
about_Debuggers
Get-PSBreakpoint
Enable-PSBreakpoint
Disable-PSBreakpoint
Remove-PSBreakpoint
Get-PSCallStack

C:\Windows>powershell get-help Get-PSBreakpoint -full

ColorConsole [Version 1.7.1000] PowerShell 2.0-Export
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2014 Microsoft Corporation.

OS: Windows 10, 8.1, 8, 7, Vista / Windows Server 2016, 2012, 2008
»»»» ColorConsole









... Windows-10




Windows 10 How To

... Windows 10 FAQ
... Windows 10 How To




PowerShell: Legt einen Haltepunkt für eine Zeile, einen Befehl oder eine Variable fest.

HTTP: ... PS_Windows/de/Set-PSBreakpoint.htm
0.265
14761

Der Unterschied von MS 365 Office zu 2016, 2019 Office!

 /

Export Explorer folder content and tree view under Windows 11, 10 and 8.1?

 /

Herausfinden, ob der Computer einen USB Port hat?

 /

Query the desktop color pixel value on all Windows 11, 10, ... etc.  OS!

 /

Was ist ein Zehn Finger Touch Screen?

 /

Download ISS Web Server for Windows 10/11 good and for free!

 /

Kann ich diese Schneekanone auch kommerziell nutzen und teilen?

 /

I just want to extract the images from PowerPoint and not from Excel!

 /

Datenübertragung zu langsam. W10 Defender aktiviert sich immer wieder!

 /

Was ist eine Fortschrittsanzeige?

 /

Mit PowerShell und CMD komplette Verzeichnisse löschen, mit Beispielen?

 /

Automatisches Einfügen von Texten unter Windows 11, 10, ..., wozu, warum!

 /