本帖最后由 neorobin 于 2011-5-9 01:04 编辑
!dataSet:%%v-=!
是变量替换的形式, 例如, 当前变量 dataSet 的值是:
新行0943-1新行0765-2新行0943-3新行
而 %%v 的值是
0943
这里替换就是 把 dataSet 内容里的 0943-都替换成 "空"
那么 !dataSet:%%v-=! 就会是:
新行1新行0765-2新行3新行
相对于你手工录入的速度, 200 个数据(元素字符串长度也不过5,6位)的数组(实为一个长字符串)用 for 来处理的耗时你根本就感觉不出来的.
你的需要仍不太清楚, 要不要接受重复录入的数据?
不接受重复录入的代码很简单一些:- @echo off & setlocal enableDelayedExpansion
- set dataSet=,
- set cnt=0
- for /l %%i in (0 0 0) do (
- cls & color 07 & echo dataSet (!cnt! items^): !dataSet:~1,-1!
- set /a cnt+=1
- echo. & set /p var="Please input the No. !cnt! data: "
- for %%v in (!var!) do (
- if "!dataSet:,%%v,=!"=="!dataSet!" (
- set dataSet=!dataSet!%%v,
- ) else (
- color 0c
- echo This data: %%v has been entered: & pause
- set /a cnt-=1
- )
- )
- )
复制代码
|