【发布时间】:2019-06-24 21:19:53
【问题描述】:
我正在从 TFS 获取我的项目的最新更改并运行静态代码分析。我想用结果保存最新的变更集。我想在 Windows 批处理文件中使用它。
这是我获取最新版本的方式:
"%VSINSTALLDIR%Common7\IDE\TF.exe" get $/%ProjectName% /recursive
我检查最新的变更集编号:
"%VSINSTALLDIR%Common7\IDE\TF.exe" localversions %ProjectName%
上述命令的输出如下:
C:\Projects\VeriPark:
ProjectName;C23456
1 item(s)
我想将版本变量设置为最新的变更集编号。 (根据上面的输出,版本=23456)。如果可能的话,我不喜欢将输出保存到临时文件中。即使我将其保存到 version.txt 文件中,我也无法获得第二行。
当输出到一个文件中时,我可以用 for 语句读取它。但是我无法获得第二行。得到第二行后,我可以解析版本号,如下所示:
SET Version=%Line:~14,5%
我需要帮助解决两个问题:
- 如何在不使用临时文件的情况下在批处理文件中获取命令的输出(第二个 localversion 命令)?
- 如何解析多行变量以获取请求的行(获取第二行,或以项目名称开头的行)?
提前谢谢你
【问题讨论】:
-
我很难测试这个,但你可以运行一个循环,我会发布一个答案,你必须为我测试它。
-
感谢@GerhardBarnard 对其进行调查。我找到了第一个问题的答案。计算行并输出它们我可以得到第一行和最后一行,但不是中间行。我正在研究 for 循环的 delims 和 token。
标签: shell batch-file tfs command-line