Сценарий нового окна powershell с powershell? - PullRequest
1 голос
/ 08 марта 2012

Я хотел бы автоматически запустить PowerShell и запустить несколько команд из другого PowerShell (я хочу запустить его из другого PowerShell из-за преимуществ функций).
Я хотел бы сделать это, потому что я тестирую* .dll, закодированный в C # с powershell, и мне приходится постоянно запускать и выходить из powershell, потому что невозможно выгрузить dll в powershell и, следовательно, невозможно перезагрузить библиотеку с ее классами.

Есть лиспособ автоматизировать PowerShell, как автоматизация com-объекта с офисом?

Ответы [ 2 ]

3 голосов
/ 08 марта 2012

А как насчет использования скрипта или блоков скриптов?

powershell {
   Add-Type foo.dll
   [Foo]::DoSomething();
}

должно работать.

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

powershell -noexit { Add-Type foo.dll }

В этом случае может быть полезно по крайней мере изменить цвет приглашения, чтобы вы знали, находитесь ли вы в тестовой вложенной оболочке или в родительской:

function Test-DLL {
  powershell -noexit {
    function prompt {
      Write-Host -n -fore yellow "Test $PWD>"
      ' '
    }

    Add-Type foo.dll
  }
}

Я склонен определять маленькую функцию также следующим образом:

"function $([char]4) { exit }" | Invoke-Expression

, что позволяет мне закрыть PowerShell с помощью Ctrl + D , Введите (половина аналога оболочек Unix).

1 голос
/ 08 марта 2012

Возможно, не самое элегантное решение, но оно должно быть сделано (я не профессионал PS):

cmd /c start powershell
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...