このコマンドが機能しないのはなぜですか? どうすれば修正できますか?
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