dbohdan 2015-03-11: with-path is to cd what withOpenFile is to open.
proc with-path {path code} { set prevPath [pwd] cd $path uplevel 1 $code cd $prevPath }
DKF: In 8.6, it might be better to do:
proc with-path {path code} { set prevPath [pwd] cd $path try { uplevel 1 $code } finally { cd $prevPath } }