中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-04 23:01
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 变量延迟失效???
可打印版本  784 / 6
第1楼 ruisoft 发表于 2007-06-12 09:59
初级用户 发帖 57 积分 93
变量延迟失效???
下列代码有什么不对之处???
请高手们帮忙找一找,在这先谢了!!!

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

DIR D:\DOCUMENTS /A /B > DOC.TXT

FOR /F " DELIMS=," %%T IN (DOC.TXT) DO (
SET /a VAR="%%T"
SET /a VAR=!VAR: =_!
SET /a VAR=!VAR:-=_!

echo "!VAR!"

)

GOTO END-S

:END-S
第2楼 wudixin96 发表于 2007-06-12 11:11
银牌会员 发帖 931 积分 1,928
"DELIMS=,"文件名里有逗号?

SET /a VAR="%%T",文件名里有数字?
第3楼 wudixin96 发表于 2007-06-12 11:13
银牌会员 发帖 931 积分 1,928
是这个意思吗?
第4楼 ruisoft 发表于 2007-06-12 11:27
初级用户 发帖 57 积分 93
使用 "DELIMS=," 是因为文件名中会出现空格,如果把“,”号去掉会出现文件名不完整的情况!

"DELIMS" 的默认是以空格为分隔符处理的。
第5楼 ruisoft 发表于 2007-06-12 11:29
初级用户 发帖 57 积分 93
Originally posted by wudixin96 at 2007-6-12 11:13 AM:
是这个意思吗?
第6楼 dikex 发表于 2007-06-12 12:30
高级用户 发帖 366 积分 788
三楼的"DELIMS="后面是直接跟着引号的,这样就表示取消包括空格在内的所有字符作为分隔符
第7楼 huzixuan 发表于 2007-06-12 18:07
高级用户 发帖 219 积分 537 来自 芜湖
你所指的不对之处,是哪里出了问题.
希望可以说的详细一点

但 set /a 是用来做数学运算的阿,用来做替换变量内的值 似乎有些不妥
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023