获取一组在特定日期之后修改过的文件

jco*_*lum 2 powershell tfs powershell-2.0

有没有人有一个方便的PowerShell脚本,根据修改日期从TFS获取一组文件?我想说"给我在X/Y/ZZZZ之后修改的文件夹(或子文件夹)中的所有文件",并将这些文件转储到他们通常去的文件夹以外的文件夹中.我知道足够的权力来破解并最终完成,但我希望避免这种情况.

Kei*_*ill 5

确保已安装Team Foundation 2015 Power Tools.它配有PowerShell管理单元.您可以直接从其启动组运行PowerShell控制台文件,也可以执行Add-PSSnapin Microsoft.TeamFoundation.PowerShell.然后cd到你的工作区并执行:

Get-TfsItemProperty . -r | Where {$_.CheckinDate -gt (Get-Date).AddDays(-30)} | 
    Format-Table CheckinDate,TargetServerItem -auto

CheckinDate           TargetServerItem 
-----------           ----------------
9/14/2009 1:29:23 PM  $/Foo/Trunk/Bar.sln                            
9/29/2009 5:08:26 PM  $/Foo/Trunk/Baz.sln       
Run Code Online (Sandbox Code Playgroud)

要将该信息转储到目录:

Get-TfsItemProperty . -r | Where {$_.CheckinDate -gt (Get-Date).AddDays(-30)} | 
    Select TargetServerItem > c:\recentlyChangedFiles.txt
Run Code Online (Sandbox Code Playgroud)

要将这些文件复制到另一个目录(假设您将它们本地下载到工作文件夹中):

Get-TfsItemProperty . -r | Where {$_.CheckinDate -gt (Get-Date).AddDays(-30)} | 
    CopyItem -Path $_.LocalItem -Destination C:\SomeDir -Whatif
Run Code Online (Sandbox Code Playgroud)

请注意,这会将文件复制到平面文件夹结构中 如果你想维护dir结构,那就更多了.