<# Вывод отладочной информации через WINAPI функцию OutputDebugString. Версия: 1.02 Дата последнего изменения: 2018-09-10 (c) 2018 Smitis. All rights reserved. Параметры принимаются из конвеера (выводятся в первую очередь) и из командной строки (выводятся после вывода конвеера). Каждый параметр выводиться отдельным вызовом OutputDebugString. Параметр -Prefix (синоним -P) задаёт строку, добавляемую к каждому выводимому параметру плюс ": " (двоеточие и пробел) (удобно использовать для фильтра в dbgview) Мониторить вывод можно программой dbgview: https://docs.microsoft.com/en-us/sysinternals/downloads/debugview Пример: Output-DebugString -Prefix "PS" "Qwerty" "12345" выведет: PS: Qwerty PS: 12345 Описание функции OutputDebugString: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363362(v=vs.85).aspx #> Add-Type -TypeDefinition @" using System.Runtime.InteropServices; public static class Kernel32 { [DllImport("kernel32.dll", SetLastError=true)] public static extern void OutputDebugString(string lpOutputString); } "@ function Output-DebugString { param ( [Parameter(ValueFromPipeline)] [string] $Pipe, [Parameter(Position=0)] [string] $Text, [Parameter()] [Alias('P')] [string] $Prefix, [Parameter(ValueFromRemainingArguments)] [string[]] $Remaining ) begin { $Prefix = if ($Prefix) {$Prefix+": "} else {""} } process { if ($Pipe) { [kernel32]::OutputDebugString($Prefix+$Pipe) } } end { if ($Text) { [kernel32]::OutputDebugString($Prefix+$Text) } if ($Remaining) { foreach ($rem in $Remaining) { [kernel32]::OutputDebugString($Prefix+$rem) } } } } Set-Alias "dbg" "Output-DebugString" |