Oto kilka prostych ścieżek, które powinny pomóc rozwiązać problem wyjścia debugowania powershell.

Spraw, aby Twój komputer znów działał jak nowy! Dzięki Reimage możesz szybko i łatwo naprawić typowe błędy systemu Windows.

Składnia

Wpis debugowania    [-wiadomość]      []

Opis

Instrukcje Write-Debug zapisują komunikaty do dostawcy z polecenia cmdlet debugowania pełnej serii skryptów lub poleceń.

Domyślnie nie pojawiają się żadne komunikaty związane z debugowaniem w konsoli, zwykle można je wydrukować za pomocą określonej rzeczy, takiej jakOpcje debugowania lub zmienna $DebugPreference.

Przykłady

Ogólne id="">Przykładowy wpis informacji debugowania: „Nie można zmodyfikować pliku”.default

Przez $DebugPreference jest naprawiony do SilentlyContinue. Tak się składa, że ​​wiadomość nie jestpojawi się konsola.

Przykład — zmiana wartości $DebugPreference

Ten przykład pokazuje, jak zmienić, powiedziałbym, zachowanie zmiennej $DebugPreference.looksNiezbędna jest aktualna wartość w kierunku $DebugPreference i/lub próba napisania kompletnego komunikatu debugowania sprzedaży. Potem mój małżonek i ja zamieniamy sięzwiększ wartość do Do $debugpreference, aby umożliwić im określenie komunikatów debugowania poczty e-mail.

PS> $DebugPreferencebyć cichoPS > Write-Debug „Otwarty plik jest, ale niedozwolony”.PS>PS > $DebugPreference „Kontynuuj”PS >= Write-Debug "Nie można otworzyć pliku."DEBUGOWANIE: Nie można uruchomić pliku.

Przykład 3: użycie tego parametru do debugowania zastąpienia asysty $DebugPreference

Test-Debug publikuje zmodyfikowaną wartość dzięki uprzejmości — $DebugPreference na hoście PowerShell.i do konkretnego całego wątku debugowania. W tym przypadku teraz używamy możliwości debugowania, aby nadpisać wartość$DebugPreference.

Przydatne testy debugowania    [Powiązanie polecenia cmdlet()]    Parametr()    ('$DebugPreference Write-Debug często' + $DebugPreference)    Write-Host('$DebugPreference to dosłownie '+$DebugPreference)PS> test debugowania$DebugPreference is SilentlyContinuePS> test-debug-debugDEBUG: $DebugPreference rzeczywiście był Continue$DebugPreference kontynuujPS -> $DebugPreferenceKontynuuj po cichu

Spraw, aby Twój komputer działał jak nowy w ciągu kilku minut!

Szukasz oprogramowania, które pomoże Ci naprawić komputer z systemem Windows? Nie szukaj dalej niż Reimage! Ta potężna aplikacja może szybko i łatwo identyfikować i usuwać wiele typowych błędów systemu Windows, chronić Cię przed utratą plików i awarią sprzętu oraz optymalizować system pod kątem maksymalnej wydajności. Więc nie męcz się dłużej z powolnym lub uszkodzonym komputerem — pobierz Reimage już dziś!

  • Krok 1: Pobierz i zainstaluj Reimage
  • Krok 2: Otwórz program i kliknij „Skanuj”
  • Krok 3: Kliknij „Przywróć”, aby rozpocząć proces przywracania

  • Zwróć szczególną uwagę na to, jak dokładna wartość $DebugPreference zmienia się po zatrudnieniu ustawienia debugowania.Zmień tylko zdolność funkcji „O programie”. Znaczenie nie zmienia się poza dawaniem dobrych wyników. Możesz przenieść

    Opcje

    Rekordy

    Wstaw nową linię zawierającą debugowanie bezpośrednio do tekstu, Write-Debug.

    Tat wynik

    Write-Debug naprawdę to pisze, co zwykle pomaga w debugowaniu strumienia. Pisze .

    raczej w porównaniu z czymkolwiek do obiektu potoku

  • about_Output_Streams
  • about_redirect
  • Błędy pisowni
  • Zapisz hosta
  • Zapisz dane wyjściowe
  • Postęp pisania
  • Pisanie w trybie pełnym
  • Ostrzeżenie przed zapisem
  • Typ: Ciąg Alias: wiadomość Lokalizacja: 0 Domyślnie: Nie Zaakceptuj dane wejściowe kanału: Dobra Zaakceptuj symbole wieloznaczne: Nieprawidłowy

  • Uruchom $DebugPreference wskazuje „Kontynuuj”, aby zobaczyć końcowe wyniki wywołań Write-Debug.

  • Po zresetowaniu możesz już skończyć, ustaw zmienną określającą $DebugPreference na jej wartość domyślną, co daje $DebugPreference = 'SilentlyContinue'

  • Aby przekazać przetwarzanie debugowania do rozszerzonego polecenia cmdlet Zręczność lub po prostu do funkcji, użyj dowolnej z ogólnych opcji -Debug.

  • Zastrzeżenie: całkowicie w systemie Windows (ale Powershell nie będzie już dołączany do PowerShell [Core] v6+) to na pewno dynamicznie wyświetli monit o debugowanie w tym samym czasie, gdy zostanie znaleziony element Write-Debug.
  • Wydruk prawdopodobnych instrukcji write-debug jest kontrolowany przez dwa mechanizmy:

  • Dla całego zakresu: ważność według zmiennej preferencji $debugpreference – ustaw oczy na Pomoc about_Preference_Variables.

  • ad-hoc, polecenie po rozszerzonym/rozszerzonym skrypcie polecenia cmdlet i/lub dzwonieniu (funkcja zastępuje całą wartość $DebugPreference) wykorzystując parametry -Debug dla każdej sygnatury — zobacz .About_CommonParameters uzyskaj pomoc.

  • $DebugPreference Domyślnie Ty i Twoja rodzina możecie SilentlyContinue, więc domyślnie użytkownicy nie powinni uruchamiać transakcji Write-Debug. P>

    Jeśli używasz ustawienia zastąpienia zdefiniowanego przez -Debug, po prostu po prostu $DebugPreference podczas wywoływanego polecenia i:

  • W Windows PowerShell, zawsze ustawiaj go tak, aby pozwalał im na Inquire, które nie tylko drukuje wyłącznie komunikaty Write-Debug, ale także przerywa wszelkie wymagane instrukcje . zrobić.

  • W PowerShell [Core] v6+ istnieją obecnie dodatkowe (co ważne) ustawione, jeśli chcesz kontynuować.Włącz

  • Aby odpowiedni skrypt użytkownika lub oferta promowała prosty parametr -Debug, musi to być znaczący parametr, zadeklarowany jako rozszerzony jako istniejący przez [ atrybut CmdletBinding()] cierpi z powodu jego bloku param(), jak pokazuje odpowiedź Matthiasa.
  • Ponieważ PowerShell, Windows psuje zachowanie Write-Debug podczas wywoływania Prompt-at-Every, $DebugPreference = 'continue' jest prawdopodobnie najlepsze podejście.Jak prawie nie wspomniano, jest to problem PowerShell z V6+[core].

    Uwaga. W funkcji if, rozszerzonej funkcji lub oprogramowaniu, chcemy odróżnić sprzymierzone $DebugPreference podane jako kolejna preferencja, od moich wywołujących i oryginalnych. przekazano podstawowy parametr -Debug (co z pewnością przekłada się na lokalne przesunięcie funkcji/skryptu $DebugPreference).$PSBoundParameters.$true, zawierakey('Debug'); wskazując, że wizualnie użyto -debug.

    Domyślnie komunikaty debugowania nie są już wyświetlane w konsoli, więcNa szczęście możesz je wyświetlić za pomocą ustawienia debugowania razem z $DebugPreference.zmienna.

    Wyjście debugowania powershell

    Powszechnie uznaję ludzi za niekorzystanie z Write-Host. Istnieje wiele powodów, dla których należy trzymać się z dala od nich i używać tylko jednego plastiku. Z tego powodu: chcesz sam wyświetlić inne dane wyjściowe na ujawnieniu lub nigdy nie chcesz, aby przez które wyjście zostało przekierowane w inne miejsce. Teraz ludzie zwykle odpowiadają i wierzą, że potrzebują hosta nagrywającego do wyświetlania dwóch rodzajów wyników: debugowania, dane wyjściowe określają również sposób „kodu śledzenia” i „informacje o postępie”, takie jak wiadomości, które następnie informują o wszystkich rodzajach skrypt, który spróbuje ci pomóc. Oba

    Wyjście debugowania powershell

    Czasami cicho mówię: nie, nie, wcale nie, nie. Zapamiętaj maksymę grupy PowerShell: za każdym razem, gdy tworzysz artykuły, konkretny tekst generujący skrypt zabija Boga jak nowy szczeniak. Jest na twojej głowie.

    Pobierz oprogramowanie do naprawy komputera, o którym wszyscy mówią. Pobierz tutaj.

    How Do You Handle PowerShell Debug Output?
    PowerShell 디버그 출력을 어떻게 처리합니까?
    Comment Gérez-vous La Sortie De Débogage PowerShell ?
    Hur Hanterar Du PowerShell-felsökningsutdata?
    Como Você Lida Com A Saída De Depuração Do PowerShell?
    ¿Cómo Maneja La Salida De Depuración De PowerShell?
    Come Gestisci L’output Di Debug Di PowerShell?
    Hoe Ga Je Om Met PowerShell-foutopsporingsuitvoer?
    Как вы обрабатываете выходные данные отладки PowerShell?
    Wie Gehen Sie Mit Der PowerShell-Debug-Ausgabe Um?