in der Batch-For-Schleife funktioniert echo %%i:~0,5% nicht

in der Batch-For-Schleife funktioniert echo %%i:~0,5% nicht

Warum funktioniert dieser Befehl nicht? Wie kann ich das beheben?

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

Antwort1

Warum funktioniert dieser Befehl nicht?

für /F %%i in ('dir c:\logs /A:-D/B') mache @echo %%i:~0,5%

Sie müssen eine temporäre Variable verwenden, da Sie aus einer Schleifenvariable keinen Text extrahieren können.

Sie benötigenverzögerte Expansion.

Versuchen Sie die folgende Befehlsdatei:

@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

Weitere Informationen

verwandte Informationen