en el bucle For por lotes, echo %%i:~0,5% no funciona

en el bucle For por lotes, echo %%i:~0,5% no funciona

¿Por qué no funciona este comando? ¿Cómo puedo corregirlo?

for /F %%i in ('dir c:\logs /A:-D/B') do @echo %%i:~0,5%

Respuesta1

¿Por qué no funciona este comando?

para /F %%i en ('dir c:\logs /A:-D/B') haga @echo %%i:~0,5%

Debe utilizar una variable temporal ya que no puede extraer texto de una variable de bucle.

Necesitas usarexpansión retrasada.

Pruebe el siguiente archivo cmd:

@echo off
setlocal enabledelayedexpansion
for /F %%i in ('dir c:\logs /A:-D/B') do (
   set _temp=%%i
   set _result=!_temp:~0,5!
   echo !_result!
   )
endlocal

Otras lecturas

información relacionada