Batch-Datei 'for' Schleifen - mehrere Zeilen

Warum funktionieren die folgenden Zeilen in einer Batchdatei?

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

Aber das wird nicht ?:

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

Es ist, als würde die Variable "a" nicht in der zweiten Zeile beibehalten. Warum ist das so und wie verwende ich den Inhalt von "a" wie im zweiten Beispiel?