中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-13 15:39
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS学习入门 & 精彩文章 (教学室) » 授人鱼不如授人渔,请教关于!的用法
可打印版本  1,585 / 10
第1楼 yardian 发表于 2006-10-20 22:38
中级用户 发帖 85 积分 305
授人鱼不如授人渔,请教关于!的用法























这是坛子 里的一位老大给我的代码,可是不会渔,所以一直不会改为已用.哪位大侠能解释一下,最好能详细解释一下形如:!num!,!ii:~0,1!.
!是怎么用的?这个%ii:~0,1%,可以从set /?里找到.但!ii:~0,1!这里换成!意思一样吗?

[ Last edited by yardian on 2006-10-21 at 00:16 ]
第2楼 yardian 发表于 2006-10-21 04:54
中级用户 发帖 85 积分 305
没人指教?
第3楼 pengfei 发表于 2006-10-21 05:11
银牌会员 发帖 485 积分 1,218 来自 湖南.娄底
你看这一段更容易懂.

第4楼 redtek 发表于 2006-10-21 07:46
金牌会员 发帖 1,147 积分 2,902
还有一个笨的方法:)
用你适先定义好的要被查找的字符串,
用它们替换掉用户输入的内容中相同的字符串,
把它们替换为一个用户不太容易或不太可能出现的一个标置字符,
用这个字符(被替换成了首位)来比较我们适先定义的一个符号(如“氵”),
如果有这个符号,说明成功替换了,说明用户输入的内容含有YES,
如果没有这个符号,说明没有成功替换,所以就是不包含。
……



[ Last edited by redtek on 2006-10-21 at 08:00 ]
第5楼 redtek 发表于 2006-10-21 07:58
金牌会员 发帖 1,147 积分 2,902
Originally posted by yardian at 2006-10-20 22:38:
:!num!,!ii:~0,1!.
!是怎么用的?这个%ii:~0,1%,可以从set /?里找到.但!ii:~0,1!这里换成!意思一样吗?



%ii:~0,1% (含义:取%ii%变量的第一个字符,从偏移量0开始)
      (它的具体含义要查询 for /? ,这个FOR的帮助很全)
      (这个有很多种用法,非常多,一堆话也说不完,需要照着帮助来一个一个运行一下来理解)

其它的内容请查询以下等帮助信息:

SET /?

FOR /?

SETLOCAL /?

IF /?

其中 FOR 中有针对!这个符号的使用的详细说明,但还需要反复理解和运行试验:)
否则无法理解透:)
第6楼 yardian 发表于 2006-10-21 11:09
中级用户 发帖 85 积分 305
Originally posted by pengfei at 2006-10-21 05:11 AM:
你看这一段更容易懂.

第7楼 vkill 发表于 2006-10-21 22:44
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
setlocal /? 看的更清楚
第8楼 redtek 发表于 2006-10-21 23:09
金牌会员 发帖 1,147 积分 2,902
Originally posted by yardian at 2006-10-21 11:09:



看这个感觉!=%,.但为什么要用!而不用%呢?



这个!和%如果用几句话来概括,还是不能把它们的精华说尽。

!与%无法直观的认定它们的区别和应该在什么时候使用,
不全是因为它们的帮助没有写清楚,
最主要的问题是:

    如果 SET 的各种变量复杂赋值,在赋值中还要传递值。
    而且如果遇到了要在 for 的循环中给变量赋值,所赋的值又是变量……
    大量的变量在 FOR 中和在 For 外部应用,相互赋值、传值……
    还有大量的字母或变量分隔操作,在for中或在for外面操作等等
    还有关于 SET /A 和 SET A=B 的类似赋值的区别等等……
    
等等一系列操作,如果平时使用时只编过几个批处理或者应用的非常少,
那么!与%的问题很可能不常遇到,或者遇到了!与%的问题不知道如何而解,
最主要的原因在于:

    上面的一系列内容的知识点都是相连着的,如果学习DOS过快,很可能丢掉了或没有学透就开始编更高级的内容所致。

    跳跃性学习和学习速度过快,而为了争取时间有时候我们常会忽略最基本的内容,如SET FOR等等,
    就导致了越向后学习与应用,所需要的基本知识点要求越要精通:)
第9楼 yeesong2002 发表于 2006-10-21 23:17
新手上路 发帖 6 积分 8
支持一下了!!!!!!!!!
第10楼 sglxy 发表于 2006-10-22 19:16
中级用户 发帖 87 积分 397
支持
第11楼 zoub 发表于 2006-10-24 23:25
初级用户 发帖 6 积分 20
认真看看。。。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023