PowerShell / PowerShell/PowerShell
Write-Debug ignores Debug switch in Foreach-Object Parallel block
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C#
- Sterne
- 55.5k
- Forks
- 8.5k
- Ø Merge
- 1 T. 2 Std.
- Gemergte PRs (30 T.)
- 88
Beschreibung
Prerequisites
- Write a descriptive title.
- Make sure you are able to repro it on the latest released version
- Search the existing issues.
- Refer to the FAQ.
- Refer to Differences between Windows PowerShell 5.1 and PowerShell.
Steps to reproduce
Run this script with two identical blocks of code except for the "Parallel" option.
Write-Host 'Test 1 - non-parallel'
$DebugPreference = 'SilentlyContinue'
1..2 |
ForEach-Object {
Write-Debug "Item $_`: Write-Debug"
Write-Debug "Item $_`: Write-Debug -Debug" -Debug
Write-Debug "Item $_`: Write-Debug -Debug:`$true" -Debug:$true
Write-Debug "Item $_`: Write-Debug -Debug:`$false" -Debug:$false
}
Write-Host 'Test 2 - parallel'
$DebugPreference = 'SilentlyContinue'
1..2 |
ForEach-Object -Parallel {
Write-Debug "Item $_`: Write-Debug"
Write-Debug "Item $_`: Write-Debug -Debug" -Debug
Write-Debug "Item $_`: Write-Debug -Debug:`$true" -Debug:$true
Write-Debug "Item $_`: Write-Debug -Debug:`$false" -Debug:$false
}
Write-Host 'Done'
Expected behavior
Test 1 - non-parallel
DEBUG: Item 1: Write-Debug -Debug
DEBUG: Item 1: Write-Debug -Debug:$true
DEBUG: Item 2: Write-Debug -Debug
DEBUG: Item 2: Write-Debug -Debug:$true
Test 2 - parallel
DEBUG: Item 1: Write-Debug -Debug
DEBUG: Item 1: Write-Debug -Debug:$true
DEBUG: Item 2: Write-Debug -Debug
DEBUG: Item 2: Write-Debug -Debug:$true
Done
Actual behavior
Test 1 - non-parallel
DEBUG: Item 1: Write-Debug -Debug
DEBUG: Item 1: Write-Debug -Debug:$true
DEBUG: Item 2: Write-Debug -Debug
DEBUG: Item 2: Write-Debug -Debug:$true
Test 2 - parallel
Done
Error details
NA
Environment data
Name Value
---- -----
PSVersion 7.4.3
PSEdition Core
GitCommitId 7.4.3
OS Microsoft Windows 10.0.19045
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
Visuals
No response
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginnen Sie, indem Sie das bereitgestellte Reproduktionsskript ausführen und das Verhalten von Write-Debug in gewöhnlichen und ForEach-Object -Parallel-Blöcken vergleichen. Verfolgen Sie die Einstiegspunkte von ForEach-Object -Parallel und Write-Debug, um festzustellen, warum der Debug-Schalter ignoriert wird, und überprüfen Sie anschließend, dass der parallele Block die erwarteten Debug-Zeilen erzeugt und dabei DebugPreference berücksichtigt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- shell
- Bereich
- cli
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 38/100