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

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

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

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

[ 本帖最后由 lj84831253 于 2010-4-18 16:05 编辑 ]

先set x=%x:ab=#%一下再用#分割可以么?
OrzDEF

TOP

delims本身没有这样的功能

TOP

遇到这样的情况,就像二楼一样用变通的方法吧,命令是死的,人是活的!
***共同提高***

TOP

给你个演示:
  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
复制代码

TOP

学习了,以前从没有想过这个问题

TOP

可以考虑使用gawk

TOP

这个问题好,以前没有想到过
@echo off
set /p=>hlw1.txt<nul

TOP

回复 5楼 的帖子

试试这个字符串 aebhcidefghijklmnopqrstuvwxyz

TOP

原帖由 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"呢

TOP

哦,原来还是不行啊,跟
for /f "tokens=1,2,3* delims=efhi" %%a in ("abcdefghijklmnopqrstuvwxyz") do ******
的效果一样。。。

TOP

  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

评分人数

TOP

返回列表