![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-25 23:45 |
共 47,812 主题排行 / 349,910 发帖 / 今日 0 篇 / 48,264 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]提取变量字符前17个字符 |
| 可打印版本 2,464 / 8 |
| 第1楼 qasa | 发表于 2007-01-19 05:17 |
| 高级用户 发帖 311 积分 959 来自 广东-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 ] |
|
| 第2楼 qasa | 发表于 2007-01-19 05:28 |
| 高级用户 发帖 311 积分 959 来自 广东-LianJiang | |
|
为什么我
set ii=%%i:~0,17%% 不行呢? |
|
| 第3楼 everest79 | 发表于 2007-01-19 05:45 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
for里的替代参数没有这个功能
for /f "tokens=1-3 delims==|" %%a in (mac.ini) do %%a %%b %%c 这样你就可以得到mac ip name三个数据分别为%%a %%b %%c |
|
| 第4楼 lxmxn | 发表于 2007-01-19 06:01 |
| 版主 发帖 4,938 积分 11,386 | |
|
试试下面这个? |
|
| 第5楼 qasa | 发表于 2007-01-19 06:21 |
| 高级用户 发帖 311 积分 959 来自 广东-LianJiang | |
|
回三楼:
你的改成如下可正常使用: 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 ] |
|
| 第6楼 lxmxn | 发表于 2007-01-19 06:29 |
| 版主 发帖 4,938 积分 11,386 | |
|
对的,echo后面跟空格和一些特殊的符号,有时效果是一样的。还有很多,类似echo;!str! echo\!str! echo/!str! echo;!str! 等等,自己去试试就会发现。
%dbg%是一个变量,这是在命令行调试批处理程序设置的临时变量,那你预先在命令行运行set dbg=on,那么这里的echo %dbg% off就相当于echo on off,也就是打开命令行回显,这样就便于你检查程序的运行错误和运行过程,当你设置set dbg=时,执行批处理后,自然是关闭了命令的回显(echo off),这样就不会在屏幕显示命令的回显了。 |
|
| 第7楼 qasa | 发表于 2007-01-19 06:31 |
| 高级用户 发帖 311 积分 959 来自 广东-LianJiang | |
|
everest79兄这段语句对我作用很大,以进千里的作用,哈哈哈,可惜我只能为你加2分。谢了
|
|
| 第8楼 qasa | 发表于 2007-01-19 06:34 |
| 高级用户 发帖 311 积分 959 来自 广东-LianJiang | |
|
哦,原来%dbg%是为了方便调试程序的,受教
|
|
| 第9楼 minmin888 | 发表于 2007-05-08 11:16 |
| 初级用户 发帖 62 积分 127 | |
|
积累!
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |