Arquivo em lote 'for' loops - multiple lines

Por que as linhas a seguir funcionam em um arquivo em lotes?

 for  %%a in ("C:\Test\*.txt") do set FileName=%%~a
 echo Filename is: %FileName%

Mas estes não vão?

 for  %%a in ("C:\Test\*.txt") do (
     set FileName=%%~a
     echo Filename is: %FileName%
 )

É como se a variável "a" não fosse retida na segunda linha. Por que isso e como eu uso o conteúdo de "a" como no segundo exemplo?

questionAnswers(1)

yourAnswerToTheQuestion