我有一个我正在努力开发的PowerShell 2脚本。此脚本的目的是环绕批处理脚本并智能地选择要运行的所述批处理脚本的版本。在我的代码中的某些地方,我有一些类似的逻辑:
& $myCommand $args
$ myCommand是我想要运行的批处理文件的完全限定文件名。 $ args是传递给此脚本的args。除了在运行$ myCommand时打开一个命令窗口,它才有用。如何防止这种情况导致输出在同一个PowerShell shell中?
奇怪的是,如果我直接执行命令,它会以我想要的方式显示。如下所示:
C:\myCommand.bat $args
鉴于我需要选择在运行时运行哪个命令,如何在使用'&'时将输出放在同一个shell中在变量中执行命令?谢谢!
答案 0 :(得分:1)
Start-Process
使用-NoNewWindow
参数代替&
:
Start-Process -filepath C:\myCommand.bat -argumentList @("arg1","arg2") -NoNewWindow