[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
少个出错几率
  1. @echo off
  2. rem &<>%%a%%!ver!&^^^ ^*~                     are you o                 k ?" : \  / ` `  verfdxcweippo opj x ds gw !%%
  3. for /f "skip=1 delims=" %%i in (%~0) do set "str=%%i"&goto lp
  4. :lp
  5.     setlocal enabledelayedexpansion
  6.     set str=!str!
  7.     for /l %%i in (1,1,255) do if "!str:~%%i,1!"=="" set/a n=%%i-4&echo !n!&pause
复制代码
1

评分人数

TOP

原帖由 523066680 于 2008-8-17 08:07 发表
我觉得上面的方法高明~!不过我通过在命令行输入 yourbat.bat
才执行成功……
稍微改了一下……
@echo off
rem &%%a%%!ver!&^^^ ^*~                     are you o                 k ?" : \  / ` `  verfdxcwe ...

确实应该 type %0   因为文件名空格问题  谢523066680兄的细心
set str=!str! 多余
我在前面就已经粗心了   开始我以为是前面是计算整个一排的 所以我改一下的
现在看前面::等同REM   如是这样  set /p str=<%0  也一样

TOP

直接点的怎么样呢
  1. @echo off&setlocal enabledelayedexpansion
  2. set/p str=Type :
  3. for /l %%i in (1,1,10000) do if "!str:~%%i,1!"=="" echo %%i&pause&exit
复制代码
1

评分人数

    • 523066680: 上次 权限不够 这次一起加。PB + 16

TOP

RE:  defanive兄
我前面这样处理 是因为 变量的的长度是有限制的  这个以前有讨论
执行时间  视变量长度  不是一直循环的 空值就退出啊
下面的代码  前面贴有的  我只是简化下  应该也可判断
  1. @echo off&setlocal enabledelayedexpansion
  2. set/p str=Type :
  3. :lp
  4. if defined str (
  5.     set/a n+=1
  6.     set str=!str:~1!
  7.     goto lp
  8. )
  9. echo %n%
  10. pause
复制代码
1

评分人数

TOP

27楼代码 是否可简化下?
  1. @echo off&setlocal enabledelayedexpansion
  2. set/p str=Type :
  3. :lp
  4. if not "!str:~%n%,1!"=="" set /a n+=1&goto lp
  5. echo;%n%
  6. pause
复制代码

TOP

返回列表