我希望从for迭代中的变量访问第一个char。
这是我的代码:
for /f "tokens=1,2 delims==" %%i in (temp.csv) do (
set vari = %i% rem >> vari
echo %vari:~0,1%
)
最后一个echo只写“%”而不是变量的第一个字符。如果我写:
echo %vari:~0,2%
它写的是%% i中的整个字符串。
所以我的问题是:如何从%% i变量中获取第一个字符?
感谢
答案 0 :(得分:1)
空格很重要,在等号之前或之后避免使用
代码中的第二个问题是,在解析块时扩展百分比扩展,而不是在执行时扩展。
参数的扩展不像set vari=%i%
那样有用,而是需要使用set vari=%%i
因此,在这种情况下,您需要延迟扩展变量。
setlocal DisableDelayedExpansion
for /f "tokens=1,2 delims==" %%i in (temp.csv) do (
set "vari=%%i"
setlocal EnableDelayedExpansion
echo !vari:~0,1!
endlocal
)
答案 1 :(得分:0)
for /f "tokens=1,2 delims==" %%i in (temp.csv) do (
set "vari=%%i"
call echo %%vari:~0,1%%
)