2012-08-31 41 views
0

我需要一些幫助。我有一個文本文件,並在其中,我從TFS命令的輸出(tfhistory):運行tf歷史命令後從文本文件中提取文件名


變更集:74125 用戶:JDOE 日期:週四二○一二年八月三十日下午3時56分06秒

評論: 任務#12345. JDoe。

項目:

合併,編輯$ /項目名稱/ FolderSln /資料夾/ Binary.File1.cs

合併,編輯$ /項目名稱/資料夾/文件夾2/SQL_File2.sql

合併,編輯$ /項目名稱/資料夾/文件夾2/Folder3/File3.png

入住注: 代碼審稿: 性能審稿: 安全審稿:


我的目標是過濾文件中的所有垃圾,只保留文件列表,在上面的例子中,輸出將在下面。然而,對於CS文件,我們將能夠代替複製文件的DLL


Folder1.dll

SQL_File2.sql

File3.png


如何考慮到可能存在多個變更集的多個文件和文件路徑可能不同?

我在想,可以使用GREP或FINDSTR命令隔離行來僅提取文件路徑,然後創建一個小型應用程序,該應用程序使用數組來提取文件名並將它們發佈到不同的文本文件。

$ /項目名稱/資料夾/ Binary.File1.cs

$ /項目名稱/資料夾/文件夾2/SQL_File2.sql

$ /項目名稱/資料夾/文件夾2/Folder3/File3.png

回答

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 
相關問題