в пакетном цикле For echo %%i:~0,5% не работает

в пакетном цикле For echo %%i:~0,5% не работает

Почему эта команда не работает? Как это исправить?

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

решение1

Почему эта команда не работает?

для /F %%i в ('dir c:\logs /A:-D/B') сделать @echo %%i:~0,5%

Вам необходимо использовать временную переменную, поскольку вы не можете извлечь текст из переменной цикла.

Вам нужно использоватьотсроченное расширение.

Попробуйте следующий 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

Дальнейшее чтение

Связанный контент