![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 08:59 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 帮忙解释删除重复行代码的意思? |
| 可打印版本 766 / 8 |
| 第1楼 aiqian2008 | 发表于 2008-11-09 01:29 |
| 初级用户 发帖 22 积分 35 | |
|
帮忙解释删除重复行代码的意思? 源代码:
-------------------------------------------------------------------- @echo off :: 删除重复的行,但不能保留空行 :: 对不符合变量命名规则、变量个数超过限制的文本都无法正确处理 :: code by youxi01 modified by jm 2006-10-31 (echo 清除重复行后的文件内容:& echo.)>str_.txt for /f "delims=" %%i in (test.txt) do ( if not defined %%i set %%i=A & echo %%i>>str_.txt) ------------------------------------------------------------------- 我一直理解不了最后一句“if not defined %%i set %%i=A & echo %%i>>str_.txt”的意思,哪位帮忙解释一下? |
|
| 第2楼 HAT | 发表于 2008-11-09 01:48 |
| 版主 发帖 5,017 积分 9,023 | |
|
这样能否理解?
|
|
| 第3楼 aiqian2008 | 发表于 2008-11-09 02:29 |
| 初级用户 发帖 22 积分 35 | |
|
还是不明白意思? defined应该是定义的意思吧
没有设延迟变量,为什么还要设set %%i=A 设set %%i=A有什么用意? |
|
| 第4楼 8657 | 发表于 2008-11-09 02:48 |
| 初级用户 发帖 17 积分 20 | |
|
defined 就是用它来判断重复行的 但
set %%i=A 什么意思??请楼主明讲 谢谢 |
|
| 第5楼 lserfn | 发表于 2008-11-09 02:51 |
| 初级用户 发帖 49 积分 97 | |
|
没有开延迟变量
|
|
| 第6楼 aiqian2008 | 发表于 2008-11-09 02:58 |
| 初级用户 发帖 22 积分 35 | |
|
回4楼 是别人的源码,我也不知道set %%i=A 什么意思??
|
|
| 第7楼 pusofalse | 发表于 2008-11-09 05:35 |
| 银牌会员 发帖 646 积分 1,604 | |
|
set var=A你知道什么意思,为何set %%i=A就不知道了?、、、
只不过这里的var改成用%%i代替而已。。。 |
|
| 第8楼 8657 | 发表于 2008-11-09 05:55 |
| 初级用户 发帖 17 积分 20 | |
|
恩 谢谢解释 明白了 但是 这样什么作用?
|
|
| 第9楼 pusofalse | 发表于 2008-11-09 06:17 |
| 银牌会员 发帖 646 积分 1,604 | |
|
某个文件中的内容如下:
会循环4次,因为有4行(for是按行来读取的)。 第一次循环set %%i=a,执行的是set var1=a,并把%%i的值var1打印出来。第二次循环,%%i的值还是var1,var1在第一次时已经被定义过了,所以此次什么也不输出。往下的流程同是。。。 你把顶楼的代码的@echo off去掉,在CMD中运行,仔细观察其过程就能明白了。。。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |