中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: for中不能引用自定义变量? 上一主题 | 下一主题
ironchen
初级用户





积分 30
发帖 10
注册 2007-6-14
状态 离线
『楼 主』:  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 ]

2007-6-14 11:41
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 2 楼』:  

可以的

你的问题是没有启用延迟环境变量
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 ]

2007-6-14 11:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ironchen
初级用户





积分 30
发帖 10
注册 2007-6-14
状态 离线
『第 3 楼』:  

我狂晕!!!!前面是加了setlocal的
只有最后一步的echo !m:~-5! 我用的不是!是%结果搞了一早上!!!
郁闷啊~~~~~~
多谢老大~

2007-6-14 12:09
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zasxcdfv
初级用户





积分 152
发帖 75
注册 2007-2-6
状态 离线
『第 4 楼』:  

呵呵,我也在这个问题上烦了好久。后来看到版内一个讲变量延迟的精华贴才恍然大悟。

2007-6-14 14:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: