[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
多谢batman 的提示,没有看清题意。不过你写的变量str的值是固定的,不能随意输入。
(*^_^*)

TOP

  1. @echo off
  2. set /p var1=请输入字符串:
  3. set n=0
  4. set var=%var1% #
  5. :begin
  6. set /a n+=1
  7. set /a m=%n%+2
  8. for /f "tokens=%n%,%m%" %%i in ("%var%") do (
  9. if "%%j"=="#" (echo %%i)  else (goto begin))
  10. pause
复制代码
通过给字符串末尾加个#来判断实现

TOP

我来学习了

看到题目,自己动手去操作了,结果也出来,可是看看到batman后,我还是晚来一步了!我的思路是跟batman大哥一样的!!的确论坛里藏龙卧虎的!向各位大虾学习。
  1. @echo off&setlocal enabledelayedexpansion
  2. set var=av sdkjf   dfj  sdjf   abc efg
  3. for %%a in (%var%) do (set/a m+=1&set !m!=%%a)
  4. set/a m-=1
  5. echo !%m%!
复制代码

TOP

跑题L  ....

[ 本帖最后由 lxzzr 于 2009-5-1 09:17 编辑 ]

TOP

看了各位的思路很受启发。特别是随风版主的shift 和 梦想种子的 %%~ni, %%~xi 给我留下很深的印像。效率都很高。
下面我给一段新的思路,字符串越长,倒数列越小,效率越好。(不考虑特殊符号)
  1. @echo off&setlocal enabledelayedexpansion
  2. set "var=av sdkjf dfj sdjf afsd wry av sdkjf dfj sdjf abc wry"
  3. set "str="
  4. for /l %%i in (1,1,8189) do (
  5. set v=!var:~-%%i,1!
  6. if "!v!"==" " set/a n+=1&if !n! equ 2 echo !str!&pause&goto :eof
  7. if !n! geq 1 set str=!var:~-%%i,1!!str!
  8. )
复制代码

[ 本帖最后由 inittab 于 2009-5-1 09:57 编辑 ]

TOP

真的受益匪浅!!

今天晚上终于把这题的回复看完了,学习到很多东西!!特别是了解到shift 和%%~ni, %%~xi 等内容!对以后应该很有帮助的

TOP

代码内容,设置的颜色为white(即:白色)防止答案轻易泄露
显示方法 1:按住鼠标左键,框住代码即可。
显示 ...
随风 发表于 2008-1-7 21:58



   
    @echo off
    set a=sd sdfs sdf sdfsdfa sdfasd abc sdf1
    call :lis "%a%"
    pause
    :lis
    for /f "tokens=1,2*" %%a in ("%~1") do (
      if "%%c"=="" (echo %%a) else call :lis "%%b %%c"
    )
    goto :eof

这段我始终跑不通

我加了自己的理解后才可以

@echo off
set a="sd sdfs sdf sdfsdfa sdfasd abc sdf1"
:000
call :lis %a%
pause
:lis
for /f "tokens=1,2,*" %%a in (%1) do (

  if "%%c"=="" (echo %%a) else set a="%%b %%c"& goto :000
)
exit /b

我有那些部分理解错误,请指点于我,谢谢!

TOP

回复 37# kingjames


跑不通的具体表现是什么呢,得到的结果不对?还是有啥报错信息?

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 38# Batcher

代码正常运行无误。

是先前偷懒将多段代码放在同一个批次测试却疏于检查错漏,
在此向版主致歉。

TOP

返回列表