使用PowerShell编写一个新的PowerShell窗口?

时间:2012-03-08 15:38:20

标签: powershell automation

我想自动启动一个powershell并从另一个PowerShell运行一些命令(我想从另一个PowerShell启动它,因为函数的优点)。
我想这样做是因为我正在使用powershell测试用C#编码的* .dll而且我必须不断启动并退出powershell,因为它无法在powershell中卸载DLL,因此无法使用它重新加载库类。

有没有办法自动化PowerShell,就像办公室的com-object自动化一样?

2 个答案:

答案 0 :(得分:3)

使用脚本或脚本块怎么样?

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

应该有用。

如果您需要交互性并且需要随意尝试多个命令,则可以使用

powershell -noexit { Add-Type foo.dll }

在这种情况下,至少更改提示颜色非常有用,这样您就可以知道自己是在测试子shell中还是在父测试子shell中:

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

    Add-Type foo.dll
  }
}

我倾向于以下列方式定义一个小函数:

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

允许我用 Ctrl + D 输入(半个模拟Unix shell)关闭PowerShell。

答案 1 :(得分:1)

也许不是最优雅的解决方案,但应该这样做(我不是PS专业人员):

cmd /c start powershell