Salvar arquivo em lote de valores

Eu escrevi este script para procurar volume com espaço livre suficiente:

@echo on
setlocal
set gbsize=1,073,741,824
Set gbsize=%gbsize:,=%

for %%A in (A B C D) do ( 
for /f "tokens=3,4,5,*" %%B in ('dir %%A:\') do (
set bytesfree=%%B
set bytesfree=%bytesfree:,=%
if %%D == free If %bytesfree% gtr %gbsize% echo hi
)
)

Meu problema é que a variável bytesfree salva seu valor. a saída é (eco ativado)

C:\Users\Desktop>(
set bytesfree=**780,607,488**
 set bytesfree=**23167987712**
 if free == free If 23167987712 GTR 1073741824 echo hi
)
hi

parece que o bytesfree perdeu seu valor. Alguém por favor pode ajudar? e fornecer explantes? obrigado

questionAnswers(4)

yourAnswerToTheQuestion