我想运行一个.exe,它可以在许多位置。

$runpath = "$servicepackfolder\SQLServer2008SP1-KB968369-IA64-ENU.exe" 
 
Start-Process -FilePath $runpath -arg "/x:.\$buildfolder\PCU"  

或通过这种方式,指定WorkingDirectory:
Start-Process 'SQLServer2008SP1-KB968369-IA64-ENU.exe' -WorkingDirectory $servicepackfolder -arg "/x:.\$buildfolder\PCU" 

但是似乎变量没有被解释为字符串。

Start-Process : This command cannot be executed due to the error: The system cannot find the file specified.



我在正确的目录中,如果我从$ runpath变量中获取输出并将其替换为Start-Process调用中的变量,则会得到预期的行为。

这项工作有效,还是我坚持对这些路径进行硬编码。尝试自动化SQL 2008的补充流构建过程。

请您参考如下方法:

如果添加-NoNewWindow,我可以复制您看到的行为,但是如果我不指定该参数,它将按我的测试用例预期的那样工作:

start-process sizeof.exe  -WorkingDirectory C:\temp -ArgumentList 1 

新窗口闪烁并消失,但我可以从临时目录中看到它正在运行指定的exe。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!