0
我试图做一个自动化脚本,我根据不同的条件调用不同的命令(可执行文件,bats或cmdlet)。这些命令输出多行日志和进度。Powershell调用静态方法内的表达式输出
我想改善使用类的代码可重用性。但是,我不能从类方法中调用这些命令的输出。
例如,使用此代码:
Class SomeClass
{
static [void] CallSomeExe()
{
& "Path\To\SomeExe.exe" args
}
}
`& "Path\To\SomeExe.exe" args` # Shows command output in shell
`[Utils]::CallSomeExe()` # Doesn't show any output in shell
如果我在直接(& "Path\To\SomeExe.exe" args
)从该exe的输出将被在所述壳中所示我的主要功能调用命令,但如果我调用静态方法在主功能([Utils]::CallSomeExe()
)中将不会显示输出。
解决方案显示日志将捕获调用结果($out = & "Path\To\SomeExe.exe" args
)并将其返回到主函数。但是,一般来说,这是一个缓慢的过程,并显示进度信息,我宁愿将它进行流式处理,而不是在调用结束时等待所有输出。
我很困惑,因为它在一个函数内部工作,但不在类内部。
有没有办法让它显示输出时,从静态方法调用?
我相信这是我提出的解决方案,并表示将为我的问题做到这一点。因为如果我调用编译某些东西并编写自定义输出,警告或错误的命令,我希望能够看到输出。等待5或10分钟,以查看完整的输出,而不是针对我的情况的解决方案。 – ccarvalheiro