找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 34734|回复: 11

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

[复制链接]
发表于 2010-4-13 17:09:27 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-7-14 22:56 编辑

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

[ 本帖最后由 lj84831253 于 2010-4-18 16:05 编辑 ]
发表于 2010-4-13 17:27:48 | 显示全部楼层
先set x=%x:ab=#%一下再用#分割可以么?
发表于 2010-4-13 17:37:02 | 显示全部楼层
delims本身没有这样的功能
发表于 2010-4-13 18:54:06 | 显示全部楼层
遇到这样的情况,就像二楼一样用变通的方法吧,命令是死的,人是活的!
发表于 2010-4-14 13:25:03 | 显示全部楼层
给你个演示:
  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
复制代码
发表于 2010-4-14 21:24:42 | 显示全部楼层
学习了,以前从没有想过这个问题
发表于 2010-4-14 21:30:38 | 显示全部楼层
可以考虑使用gawk
发表于 2010-4-14 22:25:38 | 显示全部楼层
这个问题好,以前没有想到过
发表于 2010-4-14 22:42:44 | 显示全部楼层

回复 5楼 的帖子

试试这个字符串 aebhcidefghijklmnopqrstuvwxyz
发表于 2010-4-15 07:16:56 | 显示全部楼层
原帖由 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"呢
发表于 2010-4-15 09:17:05 | 显示全部楼层
哦,原来还是不行啊,跟
for /f "tokens=1,2,3* delims=efhi" %%a in ("abcdefghijklmnopqrstuvwxyz") do ******
的效果一样。。。
发表于 2016-7-14 22:57:05 | 显示全部楼层
  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
复制代码

评分

参与人数 1技术 +1 收起 理由
求知路漫漫 + 1 学习一个技巧

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 05:29 , Processed in 0.020957 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表