楼 主
for中不能引用自定义变量?
发表于 2007-06-14 11:41 · 中国 陕西 西安 电信
初级用户
★
积分 30
发帖 10
注册 2007-06-14 11:05
19年会员
UID 91274
性别 男
状态 离线
for变量的值能否赋给自定义的变量?
我尝试下面的程序
for /f %%a in (tmp.txt) do a(
echo %%a
set m=%%a
echo %m%
)
貌似我怎么搞都不行啊?
其实我是想把从文件中取出来的每行字符串,取其后5个显示,可是怎么都弄不好~~~
[ Last edited by bjsh on 2007-7-31 at 02:57 PM ]
第 2 楼
发表于 2007-06-14 11:47 · 中国 浙江 衢州 中移铁通
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
可以的
你的问题是没有启用延迟环境变量
for /f %%a in (tmp.txt) do (
echo %%a
set m=%%a
call echo %%m%%
)
或者
setlocal enabledelayedexpansion
for /f %%a in (tmp.txt) do (
echo %%a
set m=%%a
echo !m!
)
根据楼主的意思,应该这样提取:
setlocal enabledelayedexpansion
for /f "delims=" %%a in (tmp.txt) do (
echo %%a
set m=%%a
echo !m:~-5!
)
[
Last edited by wudixin96 on 2007-6-14 at 11:52 AM ]
第 3 楼
发表于 2007-06-14 12:09 · 中国 陕西 西安 电信
初级用户
★
积分 30
发帖 10
注册 2007-06-14 11:05
19年会员
UID 91274
性别 男
状态 离线
我狂晕!!!!前面是加了setlocal的
只有最后一步的echo !m:~-5! 我用的不是!是%结果搞了一早上!!!
郁闷啊~~~~~~
多谢老大~
第 4 楼
发表于 2007-06-14 14:30 · 中国 河北 石家庄 北京神州长城通信技术发展中心中国长城互联网
初级用户
★★
积分 152
发帖 75
注册 2007-02-06 22:09
19年会员
UID 78805
性别 男
状态 离线
呵呵,我也在这个问题上烦了好久。后来看到版内一个讲变量延迟的精华贴才恍然大悟。
论坛跳转: