Board logo

标题: for中不能引用自定义变量? [打印本页]

作者: ironchen     时间: 2007-6-14 11:41    标题: for中不能引用自定义变量?

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 ]
作者: wudixin96     时间: 2007-6-14 11:47
可以的

你的问题是没有启用延迟环境变量
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 ]
作者: ironchen     时间: 2007-6-14 12:09
我狂晕!!!!前面是加了setlocal的
只有最后一步的echo !m:~-5! 我用的不是!是%结果搞了一早上!!!
郁闷啊~~~~~~
多谢老大~
作者: zasxcdfv     时间: 2007-6-14 14:30
呵呵,我也在这个问题上烦了好久。后来看到版内一个讲变量延迟的精华贴才恍然大悟。