[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

批处理如何在下列字符中以bathome为分隔符

Str=fdkljdlkdfdkljgflkkgffkljflkbathome;lkdf;ljkdg;lkfdbathome;dlfld;lkl;kl;l,.da/u/kbathomefdaffas
请以bathome为分隔符吧他分为几段。
ㄗs:A good programming is 99% sweat and 1% coffee!--①個亾

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

  1. @echo off
  2. set "str=fdkljdlkdfdkljgflkkgffkljflkbathome;lkdf;ljkdg;lkfdbathome;dlfld;lkl;kl;l,.da/u/kbathomefdaffas"
  3. set "str=%str:bathome=_%"
  4. for /f "tokens=1-4 delims=_" %%a in ("%str%") do (
  5. echo %%a^
  6. %%b^
  7. %%c^
  8. %%d)
  9. pause
复制代码


[ 本帖最后由 wxcute 于 2009-5-10 11:08 编辑 ]
不大可能的事也许今天实现,根本不可能的事也许明天会实现

TOP

恩,这是一种解决办法。
但有时候拿到一个很长的文本后,不知道哪个字符没有被用到。
或者在经过仔细查找后,发现所有字符都有用到.就比较麻烦了。

TOP

  1. @echo off
  2. set "str=fdkljdlkdfdkljgflkk gffkljflkbathome;lkdf;ljkdg;lkfdbathome;dlfld;lkl;kl;l,.da/u/kbathomefdaffas"
  3. set "str=%str: =n#a#t#u#r#e%"
  4. set "str=%str:bathome= %"
  5. for /f "tokens=1-4 delims= " %%i in ("%str%") do (
  6. call :conv "%%i"
  7. call :conv "%%j"
  8. call :conv "%%k"
  9. call :conv "%%l"
  10. )
  11. pause&exit
  12. :conv
  13. set "s=%~1"
  14. set "s=%s:n#a#t#u#r#e= %"
  15. echo %s%
复制代码
没有人会用到“n#a#t#u#r#e”吧。除了我...o(∩_∩)o...
1

评分人数

静水流深...

TOP

呵呵,楼上MM的思路还蛮细腻啊,赞一个!

TOP

那就来个不用查找的。
  1. @echo off
  2. set "Str=bathome112222bathome;l23333 33bathome;4444bathome555bathome"
  3. :loop
  4.    set num=%str:*bathome=%
  5.    call set var=a%%str:bathome%num%=%%a
  6.    if not "%var%"=="aa" echo.%var:~1,-1%
  7.    set str=%num%
  8.    if "%str%"=="%var:~1,-1%" set "num="
  9.    if defined num goto loop
  10. pause
复制代码
技术问题请到论坛发帖求助!

TOP

回复 5楼 的帖子

谢谢啦...去年暑假有个偶然的机会学的。
在我们班里面我看起来比较小...都比他们小一岁噢。
很快就高考了...可能一个多月后才能常看望论坛可爱的大伙儿们。
“youxi01”是“游戏01”的意思么?
静水流深...

TOP

回复 6楼 的帖子

看到随风的不少代码,都是可以“不用查找”的...嗯嗯,思路很不错。
静水流深...

TOP

强人。
顺带请教个问题,echo 777bathome112222bathome;l23333 33bathomebathome;4444bathome555bathome|findstr "bathome"
输出到屏幕上的内容怎么存到某个变量里?

TOP

用for来接收,然后用set定义相关变量就行了。
如:
  1. @echo off
  2. for /f "delims=" %%i in ('echo 33bathomebathome;4444bathome555bathome^|findstr "bathome"') do set test=%%i
  3. echo %test%
  4. pause>nul
复制代码

TOP

echo 33bathomebathome;4444bathome555bathome|findstr "bathome"
的结果是:33bathomebathome;4444bathome555bathome
用for接收后那个分号";" 变成空格" "了.
看来分号:前面也要加上^

方法是可以用的,谢谢 呵呵。

TOP

返回列表