¿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
- Un índice AZ de la línea de comando CMD de Windows | SS64.com
- Comandos CMD de Windows (categorizados) - CMD de Windows - SS64.com
- EnableDelayedExpansion - CMD de Windows - SS64.com
- Endlocal - Variables de entorno local - CMD de Windows - SS64.com
- Setlocal - Variables locales - CMD de Windows - SS64.com