Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 运行tf history命令后从文本文件中提取文件名_String_Tfs_Substring - Fatal编程技术网

String 运行tf history命令后从文本文件中提取文件名

String 运行tf history命令后从文本文件中提取文件名,string,tfs,substring,String,Tfs,Substring,我需要一些帮助。我有一个文本文件,其中有一个来自TFS命令(tfhistory)的输出: 更改集:74125 用户:JDoe 日期:2012年8月30日星期四下午3:56:06 评论: 任务12345。伊多 项目: 合并,编辑$/Project Name/FolderSln/Folder1/Binary.File1.cs 合并,编辑$/Project Name/Folder1/Folder2/SQL\u File2.SQL 合并,编辑$/Project Name/Folder1/Folder2

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


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

评论: 任务12345。伊多

项目:

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

合并,编辑$/Project Name/Folder1/Folder2/SQL\u File2.SQL

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

入住注意事项: 代码审阅者: 业绩审查员: 安全审查员:


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


Folder1.dll

SQL_File2.SQL

File3.png


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

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

$/Project Name/Folder1/Binary.File1.cs

$/Project Name/Folder1/Folder2/SQL\u File2.SQL


$/Project Name/Folder1/Folder2/Folder3/File3.png

假设tf历史记录的输出位于as file call 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