标题: 变量延迟失效???
[打印本页]
作者: ruisoft
时间: 2007-6-12 09:59
标题: 变量延迟失效???
下列代码有什么不对之处???
请高手们帮忙找一找,在这先谢了!!!
@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
作者: wudixin96
时间: 2007-6-12 11:11
"DELIMS=,"文件名里有逗号?
SET /a VAR="%%T",文件名里有数字?
作者: wudixin96
时间: 2007-6-12 11:13
是这个意思吗?
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
DIR D:\DOCUMENTS /A /B > DOC.TXT
FOR /F "DELIMS=" %%T IN (DOC.TXT) DO (
SET VAR=%%T
SET VAR=!VAR: =_!
SET VAR=!VAR:-=_!
echo !VAR!
)
pause
GOTO END-S
:END-S
作者: ruisoft
时间: 2007-6-12 11:27
使用 "DELIMS=," 是因为文件名中会出现空格,如果把“,”号去掉会出现文件名不完整的情况!
"DELIMS" 的默认是以空格为分隔符处理的。
作者: ruisoft
时间: 2007-6-12 11:29
Quote: |
Originally posted by wudixin96 at 2007-6-12 11:13 AM:
是这个意思吗?
[code]@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
DIR D:\DOCUMENTS /A /B > DOC.TXT
FOR /F "DELIMS=" %%T IN (DOC.TXT) DO (
SET VAR=%%T
SET VAR=!VAR: ... |
|
三楼的代码会出现文件名称不完整的情况!
作者: dikex
时间: 2007-6-12 12:30
三楼的"DELIMS="后面是直接跟着引号的,这样就表示取消包括空格在内的所有字符作为分隔符
作者: huzixuan
时间: 2007-6-12 18:07
你所指的不对之处,是哪里出了问题.
希望可以说的详细一点
但 set /a 是用来做数学运算的阿,用来做替换变量内的值 似乎有些不妥