Powershell获取最新的工作文件夹?

时间:2014-02-25 17:05:13

标签: powershell tfs

我正在尝试获取特定文件夹的最新信息,并想知道我将如何做到这一点。我一直在阅读有关Workspace类的MSDN文档,但遗憾的是它似乎没有提供有关如何获取最新特定文件夹的任何信息。

例如,我有一个工作区,但有多个工作文件夹。我的PowerShell脚本可以获取最新信息,但仅限于工作区级别。是否可以从工作目录级别或特定文件夹级别获取它?

提前致谢,DS。

修改的 我相信这是可能的,因为电动工具可以通过右键单击文件夹并获取最新信息来实现。理想情况下,想要复制它。

http://msdn.microsoft.com/en-us/library/Microsoft.TeamFoundation.VersionControl.Client.Workspace.aspx

以下显示我的剧本实践..

$tfs = .\tfs-get-instance.ps1 -uri $uri
$vcs = $tfs.TfsTeamProjectCollection.GetService([Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer])
[psobject]$workspace = $vcs.GetWorkspace([System.Environment]::MachineName, [System.Environment]::UserName)
$workspace.Map($sourceFolder, $localFolder)
$result = $workspace.GetLocalItemForServerItem($sourceFolder);

if ($result -ne "")
{
    echo $result
}

1 个答案:

答案 0 :(得分:1)

您应该可以使用Workspace.Get Method (String[], VersionSpec, RecursionType, GetOptions)来获得所需内容。

另一方面,如果您不一定要使用.NET对象,可以让tf.exe执行实际工作,如下所示:

& $TfExePath workfold /map "$codePath" "$LocalFolderPath" /collection:"$tfCollection" /workspace:$workspaceName
& $TfExePath get "$codePath" /version:$ChangeSet /force /overwrite /all /recursive $workspaceName

另一方面,如果安装了TF PowerTools,则还应该使用PowerShell cmdlet来使用TFS。我从来没有使用它们,但我猜你应该能够使用它们而不是使用tf.exe,如果你愿意的话。如果满足您的需求,我可能会选择电动工具中的PowerShell cmdlet。