Couple things I needed to do today - you can see how they were much simpler thanks to a couple of cmdlets I had written in the past:

  • delete shelvesets I didn't need any more.
    • Since I only wanted to keep a few that I had made today, I just checked the creation date against today.
    • Get-TfShelveset | ?{ $_.creationdate -lt [datetime]::today } | %{ tf.exe shelve /delete /i $_.name }
  • delete workspaces where none of the mapped local folders exist any more
      Get-TfWorkspace | %{ 
      	$oneexists = $false
      	$_.Folders | %{ $oneexists = $oneexists -or [io.directory]::exists($_.localitem) }
      	if (-not $oneexists) { 
      		"Deleting $($_.DisplayName)" 
      		tf.exe workspace /delete /i $_.Name
      	} else { 
      		"Keeping $($_.DisplayName)" 
      	} 
      }