Archivo por lotes 'para' bucles - líneas múltiples

¿Por qué las siguientes líneas trabajarán en un archivo por lotes?

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

Pero estos no ?:

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

Es como si la variable "a" no se retuviera en la segunda línea. ¿Por qué es esto y cómo uso los contenidos de "a" como en el segundo ejemplo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta