中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-18 12:08
47,814 主题排行 / 349,908 发帖 / 今日 1 篇 / 48,259 会员排行
DOS疑难解答 & 问题讨论 (解答室) » 请问FOR语句 /的秘密`````
可打印版本  3,769 / 25
第16楼 ghtfuo 发表于 2006-10-26 05:05
初级用户 发帖 12 积分 122
命令提示符
批处理中

记住了,谢谢你
第17楼 ghtfuo 发表于 2006-10-26 05:08
初级用户 发帖 12 积分 122
for/?

后面有几种用法
第18楼 ghtfuo 发表于 2006-10-26 05:13
初级用户 发帖 12 积分 122
格式就是

for/? %? +方式 +(范围)+动作+起始对象 +%?

是不是这样啊
第19楼 ghtfuo 发表于 2006-10-26 05:19
初级用户 发帖 12 积分 122
意思就是把所求的结果作为一个变量%X以什么样的方式用什么样的范围对一个对象做什么动作
然后把结果显出来?
第20楼 lxmxn 发表于 2006-10-26 12:15
版主 发帖 4,938 积分 11,386

  恩,大致是这样的吧。只要你自己真正理解了它的原理就够了。还是建议要多多练习for语句的使用,练习多了自然就对它更了解,用它解决问题就更得心应手了。
第21楼 ghtfuo 发表于 2006-10-27 08:04
初级用户 发帖 12 积分 122
好的
谢谢了
我看看cmd中的帮助
第22楼 ghtfuo 发表于 2006-10-27 08:14
初级用户 发帖 12 积分 122
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]

file-set
"string"
'command'
各指代的是什么动作

“options”里面是不是可以载入这些
eol=c
skip=n
delims=xxx
tokens=x,y,m-n
usebackq
第23楼 lxmxn 发表于 2006-10-27 21:46
版主 发帖 4,938 积分 11,386

Re : ghtfuo

  file-set:代表for执行的对象是一个文件,也可以是多个文件,同时支持通配符"?"和"*";

  "string":表示for执行的对象是一个字符串,比如"www.Cn-Dos.Net"这个字符串;
  for /f "tokens=1,* delims=-" %i in ("www.Cn-Dos.Net") do @echo %i+%j执行的结果是:"www.Cn+Dos.Net";

  'command':表示for执行的对象是一个命令的输出,比如"ipconfig /all"这个命令;
  for /f "delims=: tokens=1*" %i in ('ipconfig /all^|find /i "ip address"') do @echo %j执行的结果是你的ip地址.

  至于"Options",你说的是对的.
 
  要多多体会这个命令的用法才能真正掌握它.


[ Last edited by lxmxn on 2006-10-30 at 06:24 AM ]
第24楼 ghtfuo 发表于 2006-10-30 06:19
初级用户 发帖 12 积分 122
delims的意思就是把执行语句中的每一次循环的处理结果,分割组合成一个集
tokens则是取一次往前移动一定步幅所得到的字符?

('ipconfig /add^|find /i "ip address"')这个括号里add^|find /i "的含义我不了解

[ Last edited by ghtfuo on 2006-10-30 at 06:21 AM ]
第25楼 lxmxn 发表于 2006-10-30 07:04
版主 发帖 4,938 积分 11,386

  Re : ghtfuo

  哦,不要意思啊,打错了,我已经改了,这里的"add"应该是"all",这个"/all"是"ipconfig"命令的参数,它的作用就是显示计算机当前的TCP/IP配置的详细信息,包括IP,MAC,网关,和主机名等相关信息.是相对"ipconfig"命令没有参数的情况的..

  这里的"('ipconfig /all^|find /i "ip address"')"应该看作两个部分来理解,一个是"ipconfig /all",而另一个是"find /i "ip address"",前者在上面已经讲过了,而后者中的"/i"是"find"命令的参数,表示查找时忽略大小写,举个例子吧来看吧.
  比如现在有一个文件abc.txt,里面的内容是:
--------------------abc.txt---------------------------------------------
www.Cn-DoS.net
www.cn-dos.net
--------------------abc.txt---------------------------------------------
只有这两行内容,那么在命令提示符里面执行"find "Cn-DoS" abc.txt",就可以找到第一行的内容,如果你用"find "cn-dos" abc.txt",就可以找到第二行的内容,如果你用到了"/i"这个参数,那么就表示查找字符串的时候忽略大小写,所以如果执行"find /i "cn-Dos" abc.txt"的话,那么abc.txt中的两行内容都可以找到..

  这里的"^|"是管道符,作用是把"ipconfig /all"的结果传输到"find /i "ip address""命令,也可以理解为把"ipconfig /all"的结果作为"find /i "ip address""命令的对象.而这里的"^"符号,是转义字符,之所以加上这个"^",是由于for命令的特性决定的.在for命令的括号里面使用管道符号"|",必须在前面加上一个"^"作为转义.

  另外,建议你多看看系统自带的帮助文档.或者直接在命令行"命令 /?"查看帮助.


[ Last edited by lxmxn on 2006-10-30 at 07:30 AM ]
第26楼 ghtfuo 发表于 2006-10-30 07:15
初级用户 发帖 12 积分 122
一说就明白了
就是这个帮助文件找不到了
才问的
上一页  1 2
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023