Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Код:
<#
Вывод отладочной информации через 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"

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 10:01 01-11-2018
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru