Set-PSDebug

Mengaktifkan dan menonaktifkan fitur penelusuran kesalahan skrip, mengatur tingkat pelacakan, dan mengaktifkan mode ketat.

Sintaks

Set-PSDebug
   [-Trace <Int32>]
   [-Step]
   [-Strict]
   [<CommonParameters>]
Set-PSDebug
   [-Off]
   [<CommonParameters>]

Deskripsi

Set-PSDebug Cmdlet mengaktifkan dan menonaktifkan fitur penelusuran kesalahan skrip, mengatur tingkat pelacakan, dan mengalihkan mode ketat. Secara default, fitur debug PowerShell nonaktif.

Ketika parameter Pelacakan memiliki nilai 1, setiap baris skrip dilacak saat berjalan. Ketika parameter memiliki nilai 2, penetapan variabel, panggilan fungsi, dan panggilan skrip juga dilacak. Jika parameter Langkah ditentukan, Anda akan diminta sebelum setiap baris skrip berjalan.

Contoh

Contoh 1: Mengatur tingkat pelacakan

Contoh ini mengatur tingkat pelacakan ke 2, lalu menjalankan skrip yang menampilkan angka 1, 2, dan 3.

Set-PSDebug -Trace 2; foreach ($i in 1..3) {$i}

DEBUG:    1+ Set-PSDebug -Trace 2; foreach ($i in  >>>> 1..3) {$i}
DEBUG:     ! SET $foreach = 'IEnumerator'.
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ( >>>> $i in 1..3) {$i}
DEBUG:     ! SET $i = '1'.
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ($i in 1..3) { >>>> $i}
1
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ( >>>> $i in 1..3) {$i}
DEBUG:     ! SET $i = '2'.
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ($i in 1..3) { >>>> $i}
2
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ( >>>> $i in 1..3) {$i}
DEBUG:     ! SET $i = '3'.
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ($i in 1..3) { >>>> $i}
3
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ( >>>> $i in 1..3) {$i}
DEBUG:     ! SET $foreach = ''.

Contoh 2: Mengaktifkan langkah

Contoh ini mengaktifkan langkah, lalu menjalankan skrip yang menampilkan angka 1, 2, dan 3.

Set-PSDebug -Step; foreach ($i in 1..3) {$i}

Continue with this operation?
   1+ Set-PSDebug -Step; foreach ($i in  >>>> 1..3) {$i}
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): A
DEBUG:    1+ Set-PSDebug -Step; foreach ($i in  >>>> 1..3) {$i}
1
2
3

Contoh 3: Gunakan mode ketat

Contoh ini menempatkan PowerShell dalam mode ketat dan mencoba mengakses variabel yang tidak memiliki nilai yang ditetapkan.

Set-PSDebug -Strict; $NewVar

The variable '$NewVar' cannot be retrieved because it has not been set.
At line:1 char:22
+ Set-PSDebug -Strict; $NewVar

Contoh 4: Menonaktifkan fitur debug

Contoh ini menonaktifkan semua fitur penelusuran kesalahan, lalu menjalankan skrip yang menampilkan angka 1, 2, dan 3.

Set-PSDebug -Off; foreach ($i in 1..3) {$i}

1
2
3

Parameter

-Off

Menonaktifkan semua fitur penelusuran kesalahan skrip.

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-Step

Mengaktifkan langkah skrip. Sebelum setiap baris berjalan, PowerShell meminta Anda untuk menghentikan, melanjutkan, atau memasukkan tingkat interpreter baru untuk memeriksa status skrip.

Menentukan parameter Langkah secara otomatis mengatur tingkat 1pelacakan .

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-Strict

Menentukan bahwa variabel harus diberi nilai sebelum direferensikan dalam skrip. Jika variabel direferensikan sebelum nilai ditetapkan, PowerShell mengembalikan kesalahan pengecualian. Tindakan ini setara dengan Set-StrictMode -Version 1. Untuk informasi selengkapnya, lihat Set-StrictMode.

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-Trace

Menentukan tingkat pelacakan untuk setiap baris dalam skrip. Setiap baris dilacak saat dijalankan.

Nilai yang dapat diterima untuk parameter ini adalah sebagai berikut:

  • 0: Matikan pelacakan skrip.
  • 1: Lacak baris skrip saat dijalankan.
  • 2: Melacak baris skrip, penetapan variabel, panggilan fungsi, dan skrip.
Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Input

None

Anda tidak dapat menyalurkan input ke cmdlet ini.

Output

None

Cmdlet ini tidak mengembalikan output apa pun.