PowerShell Command在提示中使用时具有输出,但在脚本中使用时则不具有输出(Update-TfsWorkspace)

时间:2016-07-29 19:22:34

标签: powershell tfs tfs2015 cmdlets tfs-power-tools

我正在使用PSSnapin Teamfoundation.PowerShell,特别是使用cmdlet,Update-TfsWorkspace。

我正在尝试编写脚本并自动执行从TFS获取最新内容的过程。当我使用命令时:

Update-TfsWorkspace -force -item $somepath -recurse -overwrite

在PowerShell提示符下,我得到了这个输出:

Replacing   468256 C:\Path\MorePath\SomeFile1.txt
Replacing   468256 C:\Path\MorePath\SomeFile2.txt
Replacing   510850 C:\Path\MorePath\SomeFile3.txt
Replacing   468256 C:\Path\MorePath\SomeFile4.txt
Replacing   468256 C:\Path\MorePath\SomeFile5.txt
Replacing   510850 C:\Path\MorePath\SomeFile6.txt
Replacing   468256 C:\Path\MorePath\SomeFile7.txt

这就是我想要的和期望看到的。但是,当我在脚本中而不是直接在提示中执行相同的命令时,我只获取空格而不是输出。该命令执行成功,很明显它有效,但我没有得到输出。请参阅以下链接: Image of Empty Output

使用Start-Transcript将进程记录到文件时,它会执行相同的操作。我得到输出,但输出只是空格。 See Here

我需要此命令的输出用于日志,并且脚本生成它的顽固拒绝似乎超出了我的专业知识。任何人都知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

请注意,因为我没有使用它,看起来这个CmdLet不会在OutPut上写,但只能在主机上写(请参阅:Understanding Streams, Redirection, and Write-Host in PowerShell

一个技巧是将您的代码放入MyTFSScript.PS1 ansd call:

powershell.exe -noprofile -file MyTFSScript.PS1 > MyTFSScript.log
相关问题