Две проблемы с вашим кодом.
1) Вы используете правильный синтаксис для переменных, которые требуют отложенного расширения, но у вас не включено отложенное расширение.
2) Если вы хотите создать несколько файлов, используйте переменную for с именем файла.
@echo off
setlocal enabledelayedexpansion
set /p howManyFiles=How many files to generate:
FOR /L %%i IN (1, 1, %howManyFiles%) DO (
set /a num=!random! %% 100 + 1
echo !num! >"C:\xxx\file%%i.txt"
)
pause