中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-23 14:46
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行
DOS批处理 & 脚本技术(批处理室) » 问些批处理命令问题
可打印版本  1,381 / 2
第1楼 zreo 发表于 2005-11-24 20:56
初级用户 发帖 14 积分 51
问些批处理命令问题
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 "\<#" >nul && set CardName=!CardName:~0,-3!
echo.!line! | findstr "192.168." >nul && goto EchoName
)
:EchoName
echo CardName="%CardName%"


在这个批处理中。!这个感叹号在这里代表着什么作用
findstr /r "\<#" 中的 "\<#" 是什么意思


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 ]
第2楼 无奈何 发表于 2005-11-24 23:36
荣誉版主 发帖 356 积分 1,338
你这些问题在相关命令的帮助里大部分都有解释的。建议应该先做初步了解。
1、开启延迟环境变量选项后,变量引用符由 “!” 代替 “%”。
2、findstr /r 中 “\<” 是限定单词边界。
3、('tasklist ^| findstr /i "winword.exe"') 中 “^” 的作用是跳脱字符 “|” 的特殊字符属性,使其作为子命令中的管道符,而不是 for ...这一句中的管道符。
4、关于"tokens= delims= " 跟 "delims= tokens= " 不知道你在哪里看到的,这两条选项全是错误的。“delims=” 和 “tokens=” 都可以单独出现时留空,前者为获取全部行,后者为不获取任何字符。两者同时出现无严格先后顺序,tokens 须作指定。
第3楼 zreo 发表于 2005-11-25 02:36
初级用户 发帖 14 积分 51
谢谢您的解答,对于SET这个命令的环境变量还不太懂。虽然看了很多篇。但还是不太懂得运用。就比如 set line=%line:~0,10% 后面的~0,10虽然理解意思,但我还是不太懂得运用。
最后一个是我搞错了。真是对不起。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023