我想运行一个.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。