我想自动启动一个powershell并从另一个PowerShell运行一些命令(我想从另一个PowerShell启动它,因为函数的优点)。
我想这样做是因为我正在使用powershell测试用C#编码的* .dll而且我必须不断启动并退出powershell,因为它无法在powershell中卸载DLL,因此无法使用它重新加载库类。
有没有办法自动化PowerShell,就像办公室的com-object自动化一样?
答案 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