Q:

TFS: List all unique files in all changesets and filter by file type and changeset date

I use the following command to list all files from all changesets.  However I want to list only none duplicated files and also filter for certain file types.  How to do that?
C:\Windows\system32>tf history /server:http://10.10.30.160:8080/tfs "$/Dev" /recursive /noprompt /format:detailed >C:\History.txt

A:

This can't be achieved by a simply History command.
You need to use TFS API to get what you want. First list the files and type , create date from a specific Changeset ID. Then sort the info as your wish.
Here's some example C# code that will select the file names of all edited, added and deleted files:
Uri serverUri = new Uri("http://mytfsserver:8080/");
TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(serverUri);
tpc.EnsureAuthenticated();
VersionControlServer vcs = tpc.GetService<VersionControlServer>();
var changeset = vcs.GetChangeset(changesetId);
var changedFiles = from change in changeset.Changes where
       (  (change.ChangeType & ChangeType.Edit) == ChangeType.Edit
       || (change.ChangeType & ChangeType.Add) == ChangeType.Add
       || (change.ChangeType & ChangeType.Delete) == ChangeType.Delete)
     select change.Item.ServerItem;

Another example for your reference: Get Changeset and all it's changes on TFS using c# 

