0

我需要一些帮助。我有一个文本文件,其中有一个 TFS 命令(tfhistory)的输出:


变更集:74125 用户:JDoe 日期:2012 年 8 月 30 日,星期四,下午 3:56:06

评论:任务#12345。JDoe。

项目:

合并,编辑 $/Project Name/FolderSln/Folder1/Binary.File1.cs

合并,编辑 $/Project Name/Folder1/Folder2/SQL_File2.sql

合并,编辑 $/Project Name/Folder1/Folder2/Folder3/File3.png

签到说明: 代码审查员: 性能审查员: 安全审查员:


我的目标是过滤文件中的所有垃圾并只保留文件列表,在上面的示例中,输出将在下面。但是,对于 CS 文件,我们可以复制 dll 而不是文件


文件夹1.dll

SQL_File2.sql

文件3.png


考虑到可能有多个包含多个文件的更改集部分并且文件路径可能不同,我该如何实现这一点?

我认为可以使用 GREP 或 FINDSTR 命令隔离行以仅提取文件路径,然后创建一个使用数组提取文件名并将它们发布到不同文本文件的小型应用程序。

$/项目名称/Folder1/Binary.File1.cs

$/项目名称/Folder1/Folder2/SQL_File2.sql

$/项目名称/Folder1/Folder2/Folder3/File3.png

4

1 回答 1

1

假设您的 tf 历史输出作为文件调用 tf.list,此批处理将产生所需的结果:

for /F "delims=$ tokens=1,*" %%a in (tf.list) do if NOT !%%b!==!! call :line "%%b"

goto :eof

:line
set filename=%~n1%~x1
echo %filename%
goto :eof
于 2012-08-31T12:49:45.203 回答