'How do I cloak multiple folders at a time in Team Foundation Server?

I am following the recommended guidance for Team Foundation Server by mapping the root of the source control tree to a local folder. However, I do not want to map every folder underneath that root. I can cloak one folder at a time, but would prefer to cloak a number of folders at once. Is there a way to do so easily?



Solution 1:[1]

I found another way to do this in PowerShell. Change to the mapped directory where you wish to cloak files and enter the following command:

Get-ChildItem | where {$_.PsIsContainer} | ForEach-Object { Write-Host $_.Name ; tf workfold /cloak $_.Name }

This will cloak every directory at the current folder level. If you wish to exclude certain directories from being cloaked at this level, add the -Exclude parameter:

Get-ChildItem -Exclude <foldernames> | where {$_.PsIsContainer} | ForEach-Object { Write-Host $_.Name ; tf workfold /cloak $_.Name }

where <foldernames> can be one or more folders separated by commas. Preferably each folder name can be embedded in double quotes (to allow spaces, for example).

Also if the tf command does not work, you can use the Set-Alias prior to this as explained in this answer: powershell tf command not recognized as the name of a cmlet

Solution 2:[2]

I know this is an older post, but for anyone who stumbles on it now (as I did) or in the future ...

You might also consider the approach described in this answer. Faster than cloaking in my experience.

Briefly, you use the Get Specific Version function; specifically, you fetch version 1 for any folders you do not want locally. (Version 1 contains only the repository root $/, so fetching that version of any folder will remove the local copy. See linked answer for details.)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Community
Solution 2 David