[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
呵呵谢谢出题练习
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set num=0
  4. set "str=f.h5h,h87h非fh好46hs 7df,asf8,hsf dh;58gh7.6sh4批:处理s86h7shh7gh8jiagn"
  5. for /l %%a in (0 1 9) do call set str=!!str:%%a=1!!
  6. for /l %%a in (0 1 200) do (set str%%a=!str:~%%a,1!
  7. if /i "!str%%a!" equ "1" (set /a num+=1)
  8. )
  9. echo !num!
  10. pause>nul
复制代码
ㄗs:A good programming is 99% sweat and 1% coffee!--①個亾

============ >   hi.baidu.com/novaa   <============

TOP

哈哈,通过楼主教我的调试方法,看懂了

下面是我得出的结论,不知道对否
for %%a in () 这个默认是以 ; , 空格为分隔符的
第一步
  1. for %%a in (%str%) do set var=!var!%%a
  2. for /l %%a in (0 1 9) do set var=!var:%%a=%%a !
复制代码

就是去掉str中的分号,逗号,空格 并且 在数字后加空格,为后面的做铺垫
set var=!var!%%a 这句的意思是吧新取的值接到原值后面。
所以
  1. for %%a in (%var%0) do (
  2. set num=%%a
  3. set max=!max!!num:~-1!
  4. set /a ci+=1
  5. )
复制代码

是利用max来取数字
用ci来统计数字个数
呵呵
后面的ci-=1是由于%var%0 ,这样多算了一次
OK
ㄗs:A good programming is 99% sweat and 1% coffee!--①個亾

============ >   hi.baidu.com/novaa   <============

TOP

呵呵
谢谢随风的教导,使自己学习更上一层
呵呵
ㄗs:A good programming is 99% sweat and 1% coffee!--①個亾

============ >   hi.baidu.com/novaa   <============

TOP

原帖由 myweb9169 于 2007-12-29 23:38 发表
7楼说for默认分隔符是;和空格还有;可我看教程说只有空格和跳格符啊,到底是啥啊,各位老大给个说法,都晕了


我也不太清楚了。好像要看情况
不同情况分隔符不同
在FOR %%I IN ()
和FOR /F %%I IN ()不一样
自己测试测试。我明天也测试测试。
累了。。

[ 本帖最后由 novaa 于 2007-12-30 00:24 编辑 ]
ㄗs:A good programming is 99% sweat and 1% coffee!--①個亾

============ >   hi.baidu.com/novaa   <============

TOP

返回列表