Board logo

标题: [文本处理] [已解决]批处理for语句do之后的命令有什么特殊要求吗? [打印本页]

作者: deito    时间: 2011-3-29 15:37     标题: [已解决]批处理for语句do之后的命令有什么特殊要求吗?

  1. set num=0
  2. for /f "tokens=3 delims=," %%a in (ls02.txt) do (
  3. set num%num%=%%a
  4. set /a num=%num%+1
  5. )
  6. echo %num0%
  7. echo %num1%
  8. echo %num2%
复制代码
这段代码中,为什么结果是:
1
ECHO处于关闭状态
ECHO处于关闭状态

目的只是把每一次处理的结果都赋给连续的变量
作者: terse    时间: 2011-3-29 16:05

开启延迟            .....
作者: weichenxiehou    时间: 2011-3-29 16:06

  1. @echo off&setlocal enabledelayedexpansion
  2. set num=0
  3. for /f "tokens=3 delims=," %%a in (ls02.txt) do (
  4. set "num!num!=%%a "
  5. set /a num+=1
  6. )
  7. echo %num0%
  8. echo %num1%
  9. echo %num2%
  10. pause>nul
复制代码

作者: deito    时间: 2011-3-29 16:11

3# weichenxiehou

发现这两句和我写的不一样,求解释
set num%num%=%%a
set /a num=%num%+1
作者: haiou327    时间: 2011-3-29 16:23

开启延迟
变量中%号用!代替
作者: deito    时间: 2011-3-29 16:26

了解了,3Q




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2