Board logo

标题: [文本处理] [已解决]批处理for语句的delims如何使用多个字符/字符串为分隔符? [打印本页]

作者: lj84831253    时间: 2010-4-13 17:09     标题: [已解决]批处理for语句的delims如何使用多个字符/字符串为分隔符?

本帖最后由 pcl_test 于 2016-7-14 22:56 编辑

我写成delims=ab的话就是使用a和b为分隔符,但是实际上我是想用“ab”为分隔符,那我该怎么写呢?谢谢。

[ 本帖最后由 lj84831253 于 2010-4-18 16:05 编辑 ]
作者: Seter    时间: 2010-4-13 17:27

先set x=%x:ab=#%一下再用#分割可以么?
作者: GNU    时间: 2010-4-13 17:37

delims本身没有这样的功能
作者: batman    时间: 2010-4-13 18:54

遇到这样的情况,就像二楼一样用变通的方法吧,命令是死的,人是活的!
作者: Spring    时间: 2010-4-14 13:25

给你个演示:
  1. @echo off
  2. set "s1=ef"
  3. set "s2=hi"
  4. setlocal enabledelayedexpansion
  5. for /f "tokens=1,2,3* delims=%s1%%s2%" %%a in ("abcdefghijklmnopqrstuvwxyz") do (
  6.   echo 第一段:%%a
  7.   echo 第二段:%%b
  8.   echo 剩下的:%%c
  9. )
  10. pause>nul
复制代码

作者: xieqingx    时间: 2010-4-14 21:24

学习了,以前从没有想过这个问题
作者: GNU    时间: 2010-4-14 21:30

可以考虑使用gawk
作者: todayambition    时间: 2010-4-14 22:25

这个问题好,以前没有想到过
作者: FOR    时间: 2010-4-14 22:42     标题: 回复 5楼 的帖子

试试这个字符串 aebhcidefghijklmnopqrstuvwxyz
作者: yangfengoo    时间: 2010-4-15 07:16

原帖由 Spring 于 2010-4-14 13:25 发表
给你个演示:@echo off
set "s1=ef"
set "s2=hi"
setlocal enabledelayedexpansion
for /f "tokens=1,2,3* delims=%s1%%s2%" %%a in ("abcdefghijklmnopqrstuvwxyz") do (
  echo 第一段:%%a
  echo 第二段: ...


若果
set "s1=es"
set "s2=hk"呢
作者: Spring    时间: 2010-4-15 09:17

哦,原来还是不行啊,跟
for /f "tokens=1,2,3* delims=efhi" %%a in ("abcdefghijklmnopqrstuvwxyz") do ******
的效果一样。。。
作者: pcl_test    时间: 2016-7-14 22:57

  1. @echo off
  2. set "str=aybcdefgabhijklmnopqabrstuvwxyz"
  3. set "str=%str:ab=#%"
  4. for /f "tokens=1-3* delims=#" %%a in ("%str%") do (
  5.     echo 第一段:%%a
  6.     echo 第二段:%%b
  7.     echo 剩下的:%%c
  8. )
  9. pause
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2