No estoi en el ordenador en el que se efectuo tal error pero juraria que es asi:
FOR /F "tokens=7* delims= " %%i IN ("wmic logicaldisk where "DeviceID='C:'" get FreeSpace") DO echo %%i de Espacio libre
Antes de nada quiero decir que para mostrar esa info no necesitas un FOR:
Echo: Espacio libre:
& wmic logicaldisk where "DeviceID='C:'" get FreeSpace
| FINDSTR "[0-9]"
Y has elejido un muy mal ejemplo para practicar con el FOR, El
wmic a veces resulta dificil de mostrar ya que está en caracteres unicode, Y casi siempre es necesario elegir el formato de listado adecuado que te ayude más a filtrar la info que deseas mostrar (El listado por defecto deja las lineas llenas de de espacios al final de cada linea...), y/o filtrarlo usando find o findstr...
Deberías practicar el FOR /F con comandos fáciles y a la vez muy útiles como DIR, TYPE, etc...
1º - Estás habilitando la expansión sin motivo.
2º - ¿Porque usas 7 tokens? En el output del del comando que dijiste de wmic solo hay 1 palabra...
3º - Estás usando comillas dobles y debes usar comillas simples ' ' a menos que uses "
USEBACKQ"
4º - Hay que filtrar el output del wmic un poco...
FOR /F "Tokens=2 delims=,"
%%X IN ('wmic LogicalDisk Where "DeviceID='C:'" Get Name
^,FreeSpace /Format:csv
^| FINDSTR [0-9]'
) DO (Echo %%X De espacio libre.
)
Salu2