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

[文本处理] [已解决]求助批处理for命令"delims="后面可以是中文,这个怎么实现

[复制链接]
发表于 2024-5-30 15:57:04 | 显示全部楼层 |阅读模式
本帖最后由 菊花的忧伤 于 2024-5-31 14:43 编辑
  1. @echo off

  2. rem 获取test1.txt文本的数据
  3. for /f "delims=歌曲" %%i in (test1.txt) do echo %%i
  4. pause
复制代码
txt文本
holle word
你好
第一位歌手 李嘉诚 歌曲《疯人愿》原唱魏晨
第二位歌手,周一琦 歌曲《裂缝中的阳光》原唱林俊杰
第三位歌手,张金丹.歌曲《没那么简单》原唱黄小琥
第四位歌手,余廷挺,歌曲《到不了》原唱 李代沫

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2024-5-30 15:57:45 | 显示全部楼层
回复 1# 菊花的忧伤


    我试过加上单引号和双引号都无法执行
 楼主| 发表于 2024-5-30 16:09:54 | 显示全部楼层
本帖最后由 菊花的忧伤 于 2024-5-30 16:11 编辑
  1. @echo off

  2. set var=歌曲
  3. pause
  4. echo %var%
  5. pause
  6. for /f "delims=%var%" %%i in (test1.txt) do echo %%i
  7. pause
复制代码
回复 1# 菊花的忧伤


    这样弄只能识别到歌,或者曲的单字符,不能有连续写法,各位大佬们
  1. 请按任意键继续. . .
  2. 歌曲
  3. 请按任意键继续. . .
  4. holle word
  5. 你好
  6. 第一位
  7. 第二位
  8. 第三位
  9. 第四位
  10. 请按任意键继续. . .
复制代码
发表于 2024-5-30 16:15:15 | 显示全部楼层
原始文本是啥样
目标文本是啥样

不一定非要用 for 来实现
发表于 2024-5-30 16:46:18 | 显示全部楼层
初学,不要把tokens= 省略,多写多试,就知道怎么用了。
  1. @echo off

  2. rem 获取test1.txt文本的数据
  3. for /f "tokens=1-3 delims=歌曲" %%i in (test1.txt) do (
  4.         echo [%%i] [%%j] [%%k]
  5. )
  6. pause
复制代码
 楼主| 发表于 2024-5-30 17:11:57 | 显示全部楼层
回复 4# czjt1234


    在学习for,所以才用的for
 楼主| 发表于 2024-5-30 17:17:14 | 显示全部楼层
  1. 请按任意键继续. . .
  2. [holle word] [] []
  3. [你好] [] []
  4. [第一位] [手 李嘉诚 ] [《疯人愿》原唱魏晨]
  5. [第二位] [手,周一琦 ] [《裂缝中的阳光》原唱林俊杰]
  6. [第三位] [手,张金丹.] [《没那么简单》原唱黄小琥]
  7. [第四位] [手,余廷挺,] [《到不了》原唱 李代沫 ]
  8. [第四位手,余廷挺,] [《到不了》原唱 李代沫 ] []
  9. [第四位手,余廷挺,] [《到不了》原唱 李代沫 ] []
  10. 请按任意键继续. . .
复制代码
回复 5# 77七
你这个也只是识别一个字符,我想两个同时一起匹配
 楼主| 发表于 2024-5-30 17:18:53 | 显示全部楼层
  1. holle word
  2. 你好
  3. 第一位歌手 李嘉诚  《疯人愿》原唱魏晨
  4. 第二位歌手,周一琦  《裂缝中的阳光》原唱林俊杰
  5. 第三位歌手,张金丹. 《没那么简单》原唱黄小琥
  6. 第四位歌手,余廷挺, 《到不了》原唱 李代沫
复制代码
回复 4# czjt1234


    目标想这样
发表于 2024-5-30 17:54:44 | 显示全部楼层
回复 7# 菊花的忧伤


delims不能以一个字符串为整体作为分割符。
变通方法:
使用set命令把字符串【歌曲】替换成单个字符【/】,然后delims=/
发表于 2024-5-30 17:57:04 | 显示全部楼层
回复 7# 菊花的忧伤


多写多试
5楼说明了,歌曲不能当作一个整体作为分隔符,那么只用"曲"呢?或者只用"歌"呢?
 楼主| 发表于 2024-5-30 18:24:22 | 显示全部楼层
回复 9# Batcher


    ok懂了,这个算不算是delims=的局限性呢
发表于 2024-5-30 18:34:55 | 显示全部楼层
delims=后面的不是一个整体
可以试着想想它为啥不作为一个整体
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 01:19 , Processed in 0.017497 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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