none
Добавить Help в скрипт PowerShell RRS feed

  • Вопрос

  • Коллеги подскажите пожалуйста можноли сделать так чтобы при запуске моего скрипта с каким-нибудь параметром пользователь получил Help? Если можно то как?

    9 сентября 2009 г. 13:40

Ответы

  • А если вы уже используете вторую версию PowerShell, то можете забыть о всех этих костылях, и организовать для своих скриптов и функций справку неотличимую по функционалу от справки обычных командлетов. Но которую при этом гораздо проще создавать :)
    Подробнее - man about_Comment_Based_Help


    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    • Предложено в качестве ответа Angel-Keeper 10 сентября 2009 г. 5:25
    • Помечено в качестве ответа Amirks 14 сентября 2009 г. 6:02
    10 сентября 2009 г. 4:43
    Модератор

Все ответы

  • А почему нет?
    Можно конечно....

    Например так:

    ...

    function WriteHelp
    {
      echo "Help: ";
      echo "     powershell.exe Myscript.ps1  arg1";
      echo " ";
      echo "  from powershell.exe prompt: ";
      echo "     .\Myscript.ps1  arg1";
    }

    if $args[0]="?"

    {
      WriteHelp ;
    }




    Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение" в правом верхнем углу сообщения.
    9 сентября 2009 г. 14:01
  • Так, к примеру:

    function main { write-host script }
    function _help { write-host help }

    if ( $args[0] -eq "-?" ) { _help }
    else { main }


    Разбил на функции для наглядности. Можно просто выполнить условие if и выйти из скрипта.


    9 сентября 2009 г. 14:03
  • или вот:

    param ([switch]$show, [switch]$disable, [switch]$csv)
    $text = "`n
    `t Надо использовать следующий синтаксис скрипта:
    `t -show - Выводит информацию на консоль
    `t -disable - Отключает всех уволенных сотрудников
    `t -csv - Выводит информацию в формате для csv
    `t------------------------------------------------------------------------------------
    `t Пример:
    `t ./search-delete-user-from-ad.ps1 -show "

    if (!($show) -and !($disable) -and !($csv)) {write-warning $text; return}

    При запуске скрипта, без ключей, или с неправильными ключами, будет выдан ответ

    ПРЕДУПРЕЖДЕНИЕ:

         Надо использовать следующий синтаксис скрипта:
         -show        - Выводит информацию на консоль
         -disable     - Отключает всех уволенных сотрудников
         -csv         - Выводит информацию в формате для csv
        ------------------------------------------------------------------------------------
         Пример:
         ./search-delete-user-from-ad.ps1 -show
    9 сентября 2009 г. 14:07
  • А если вы уже используете вторую версию PowerShell, то можете забыть о всех этих костылях, и организовать для своих скриптов и функций справку неотличимую по функционалу от справки обычных командлетов. Но которую при этом гораздо проще создавать :)
    Подробнее - man about_Comment_Based_Help


    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    • Предложено в качестве ответа Angel-Keeper 10 сентября 2009 г. 5:25
    • Помечено в качестве ответа Amirks 14 сентября 2009 г. 6:02
    10 сентября 2009 г. 4:43
    Модератор