中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]提取变量字符前17个字符
作者:
标题: [求助]提取变量字符前17个字符 上一主题 | 下一主题
qasa
高级用户




积分 959
发帖 311
注册 2006-4-11
来自 广东-LianJiang
状态 离线
『楼 主』:  [求助]提取变量字符前17个字符

setlocal EnableDelayedExpansion for /f "delims=" %%i in (MAC.ini) do ( set ii=%%i echo %%i:~0,17%% set ii=!ii:~0,17! echo !ii:~0,17! echo !ii! pause>nul ) pause MAC.ini内容 00-E0-4C-80-F8-37=125.90.74.75|-075 00-E0-4C-80-F8-46=125.90.74.76|-076 00-E0-4C-80-F8-54=125.90.74.77|-077 00-00-00-00-AE-AE=125.90.74.78|-078 00-E0-4C-80-F8-4A=125.90.74.79|-079 00-E0-4D-0F-D8-32=125.90.74.80|-080 运行后的问题是变量ii为什么不能得到前面17个字符的赋量,要怎么改才行(已经解决) 还有我echo %%i:~0,17%%,为什么不得得到前面17个字符的值,?? 显示为: 00-E0-4C-80-F8-37=125.90.74.75|-075:~0,17% 00-E0-4C-80-F8-37 00-E0-4C-80-F8-37 求高手帮忙下,谢谢 [ Last edited by qasa on 2007-1-19 at 05:23 AM ]


2007-1-19 05:17
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
qasa
高级用户




积分 959
发帖 311
注册 2006-4-11
来自 广东-LianJiang
状态 离线
『第 2 楼』:  

为什么我 set ii=%%i:~0,17%% 不行呢?


2007-1-19 05:28
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 3 楼』:  

for里的替代参数没有这个功能 for /f "tokens=1-3 delims==|" %%a in (mac.ini) do %%a %%b %%c 这样你就可以得到mac ip name三个数据分别为%%a %%b %%c


   此帖被 +2 点积分    点击查看详情   
评分人:【 qasa 分数: +2  时间:2007-1-19 06:28


2007-1-19 05:45
查看资料  发短消息  网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 4 楼』:  

  试试下面这个?
@echo off&Setlocal EnableDelayedExpansion
for /f "delims=" %%a in (mac.ini) do (
	set str=%%a
	set str=!str:~0,17!
	echo=!str!
)
pause>nul&exit/b


2007-1-19 06:01
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
qasa
高级用户




积分 959
发帖 311
注册 2006-4-11
来自 广东-LianJiang
状态 离线
『第 5 楼』:  

回三楼: 你的改成如下可正常使用: for /f "tokens=1-3 delims==|" %%a in (mac.ini) do echo %%a% %%b% %%c% 谢谢 这语句中的%%a %%b %%c,是不是可以延伸的? 就是说如果用%%i开头的话,就 %%i %%j %%k %%l....这个样子呢? 回四楼: 谢谢 我发现把echo=!str!改成echo !str!也行,是不是使用习惯问题? 还有 @echo %dbg% off Setlocal EnableDelayedExpansion ... 上面 %dbg% 是什么意思?变量??求教。。 有%dbg%和没%dbg%有什么区别? [ Last edited by qasa on 2007-1-19 at 06:26 AM ]


2007-1-19 06:21
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 6 楼』:  

  对的,echo后面跟空格和一些特殊的符号,有时效果是一样的。还有很多,类似echo;!str! echo\!str! echo/!str! echo;!str! 等等,自己去试试就会发现。   %dbg%是一个变量,这是在命令行调试批处理程序设置的临时变量,那你预先在命令行运行set dbg=on,那么这里的echo %dbg% off就相当于echo on off,也就是打开命令行回显,这样就便于你检查程序的运行错误和运行过程,当你设置set dbg=时,执行批处理后,自然是关闭了命令的回显(echo off),这样就不会在屏幕显示命令的回显了。


   此帖被 +2 点积分    点击查看详情   
评分人:【 qasa 分数: +2  时间:2007-1-19 06:32


2007-1-19 06:29
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
qasa
高级用户




积分 959
发帖 311
注册 2006-4-11
来自 广东-LianJiang
状态 离线
『第 7 楼』:  

everest79兄这段语句对我作用很大,以进千里的作用,哈哈哈,可惜我只能为你加2分。谢了


2007-1-19 06:31
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
qasa
高级用户




积分 959
发帖 311
注册 2006-4-11
来自 广东-LianJiang
状态 离线
『第 8 楼』:  

哦,原来%dbg%是为了方便调试程序的,受教


2007-1-19 06:34
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
minmin888
初级用户





积分 127
发帖 62
注册 2007-4-19
状态 离线
『第 9 楼』:  

积累!


   此帖被 +1 点积分    点击查看详情   
评分人:【 wangyao 分数: +1  时间:2007-7-12 10:59


2007-5-8 11:16
查看资料  发短消息  网志   编辑帖子  回复  引用回复

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


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



论坛跳转: