中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
作者:
标题: 问些批处理命令问题 上一主题 | 下一主题
zreo
初级用户





积分 51
发帖 14
注册 2005-11-6
状态 离线
『楼 主』:  问些批处理命令问题

Originally posted by willsort at 2005-10-28 10:53: Re dosfroum: :: GetCard.cmd - Get "Description" of net card that IP address is "192.168.*.*" :: Will Sort - 2005-10-28 - CMD@WinXP @echo off setlocal EnableDelayedExpansion for /f "delims=" %%s in ('ipconfig /all') do ( set line=%%s echo.!line! | findstr "Description" >nul && set CardName=!line:~44! echo.!CardName! | findstr /r "\<#[0-9]" >nul && set CardName=!CardName:~0,-3! echo.!line! | findstr "192.168." >nul && goto EchoName ) :EchoName echo CardName="%CardName%"
在这个批处理中。!这个感叹号在这里代表着什么作用 findstr /r "\<#[0-9]" 中的 "\<#[0-9]" 是什么意思
for /f "tokens=1 delims= " %f in ('tasklist ^| findstr /i "winword.exe"') do echo ..........
('tasklist ^| findstr /i "winword.exe"') 为什么这里需要这个 “^” 才可以运行这个命令,而身上面的那些命令中并不需要 还有 "tokens= delims= " 跟 "delims= tokens= "有什么区别。前后不同的作用是什么 [ Last edited by zreo on 2005-11-24 at 22:20 ]


2005-11-24 20:56
查看资料  发短消息  网志   编辑帖子  回复  引用回复
无奈何
荣誉版主





积分 1338
发帖 356
注册 2005-7-15
状态 离线
『第 2 楼』:  

你这些问题在相关命令的帮助里大部分都有解释的。建议应该先做初步了解。 1、开启延迟环境变量选项后,变量引用符由 “!” 代替 “%”。 2、findstr /r 中 “\<” 是限定单词边界。 3、('tasklist ^| findstr /i "winword.exe"') 中 “^” 的作用是跳脱字符 “|” 的特殊字符属性,使其作为子命令中的管道符,而不是 for ...这一句中的管道符。 4、关于"tokens= delims= " 跟 "delims= tokens= " 不知道你在哪里看到的,这两条选项全是错误的。“delims=” 和 “tokens=” 都可以单独出现时留空,前者为获取全部行,后者为不获取任何字符。两者同时出现无严格先后顺序,tokens 须作指定。


2005-11-24 23:36
查看资料  发送邮件  发短消息  网志  OICQ (105400208)  编辑帖子  回复  引用回复
zreo
初级用户





积分 51
发帖 14
注册 2005-11-6
状态 离线
『第 3 楼』:  

谢谢您的解答,对于SET这个命令的环境变量还不太懂。虽然看了很多篇。但还是不太懂得运用。就比如 set line=%line:~0,10% 后面的~0,10虽然理解意思,但我还是不太懂得运用。 最后一个是我搞错了。真是对不起。


2005-11-25 02:36
查看资料  发短消息  网志   编辑帖子  回复  引用回复

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


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



论坛跳转: