windows - 通过 tf.exe 确定 TFS 工作区的本地路径

标签 windows batch-file tfs cmd

我正在使用批处理脚本来获取特定项目的最新版本。此脚本仅运行 tf.exe 并获取某些二进制文件的最新版本。一切正常,但我想将下载文件的属性更改为可写(默认情况下这些文件是只读的)。为此,我想确定文件的本地路径并使用批处理中的 attrib 命令。

tf.exe workfold [Workspace] 在某种列表中向我显示了本地路径,但如果它只向我显示我想要的内容以便我可以使用提示,那会更容易。到目前为止,它看起来像这样:

tf.exe workfold [Workspace]

=======================================

Arbeitsbereich: XYZ-xxxxxx (Username)

Auflistung: TFS-URL

[Workspace]:  C:\xxx\TFS\xxx

是否可以仅确定 TFS 工作区的本地路径映射,以便我可以在不解析的情况下使用 attrib-command 的提示?

最佳答案

下面的(粗糙!!!)概念呢?

function Get-TfsWorkfold([string]$TfsCollection, [string]$TfsWorkspace)
{
    $TfExePath = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 10.0\Common7\IDE\TF.exe"
    Write-Output "Getting workfold for '$TfsCollection'->'$TfsWorkspace'..."
    Push-Location $LocalPath
    & "$TfExePath" workfold /collection:$TfsCollection /workspace:$TfsWorkspace
}

function Handle-Path()
{
    param([Parameter(ValueFromPipeline=$true,Position=0)] [string] $line)
    $startIndex = $line.IndexOf(': ') + 2;
    $correctedLine = $line.subString($startIndex, $line.length - $startIndex - 1);
    Write-Output $correctedLine;
    Get-ChildItem $correctedLine
}

Get-TfsWorkfold "{serverAndcollection}"  "{workspace}" > c:\temp\test.txt
Select-String c:\temp\test.txt -pattern:': ' | Select-Object Line | Handle-Path

Handle-Path 中的最后一行是您可以根据需要重新编写的示例。它是 PowerShell,但它应该可以如您所愿地工作。

替换 {serverAndcollection} 和 {workspace}。

关于windows - 通过 tf.exe 确定 TFS 工作区的本地路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9940603/

相关文章:

windows - 如何重命名子目录中的文件?

linux - 配置 baretail 以显示网络日志

windows - 如何修改此 Windows 脚本以进行匹配?

visual-studio-2013 - Visual Studio 2013 + TFS = 慢

powershell - 从 PowerShell 写入 TFS 构建服务器上的测试结果

TFS - 在工作项之间移动任务

windows - 如何使用 git-bash 在 Windows 10 上安装 GNU Parallel

regex - 批处理正则表达式中的换行

batch-file - 如何将包含多个命令的 .bat 文件的输出结果自定义为单个 txt 文件

Windows 批量分配一个 var 到另一个 var