从命令行执行Powershell

时间:2012-08-06 11:38:34

标签: powershell tfs tfsbuild

我上周花了很多时间开发一个Powershell脚本。当我从Powershell窗口启动它时它现在可以正常工作了。但是,我需要从TFS构建调用脚本。我尝试使用语法 Powershell&来自TFS Build InvokeProcess控件的'script'但似乎没有任何事情发生。所以,我已经回到基础并创建了以下脚本:

Write-Host " Write-Host line"
Write-eventlog -logname "Application" -source "BizTalkDeployment" -eventId "01" -entrytype "Information" -message "test"

我已将脚本保存为c:\ temp \ ps_test.ps1。我以管理员的身份打开了一个命令窗口并尝试了以下内容:

powershell & 'c:\temp\ps_test.ps1"

这会将命令行置于PowerShell模式,我得到:

PS c:\>

但没有其他事情发生。

在我的TFS构建结束时,我有一个InvokeProcess控件,它的FileName属性使用“Powershell”,然后是以下参数:

String.Format(" ""& '{0}' '{1}' '{2}' '{3}' '{4}' '{5}' '{6}' '{7}' '{8}' '{9}' "" ", DeploymentScriptFileName, IO.Path.GetDirectoryName(DeploymentScriptFileName), "ExecuteBizTalkAppMSI.ps1", "bin\debug\x.Int.MIS-3.0.0.msi", "x.Int.MIS.Deployment.btdfproj", TargetServerPath, "d-vasbiz01", "c:\biztalkdeployment", "C:\Program Files (x86)\x.Int.MIS for BizTalk 2010\3.0", "BTSSvc*MIS*")

构建脚本运行正常,但InvokeProcess控件似乎什么都不做 - 就像我使用命令行一样。

有人能看到我出错的地方吗?

1 个答案:

答案 0 :(得分:3)

无论

powershell -file C:\temp\ps_test.ps1

powershell "&{ <# code here #> }"