Board logo

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

作者: 菊花的忧伤    时间: 2024-5-30 15:57     标题: [已解决]求助批处理for命令"delims="后面可以是中文,这个怎么实现

本帖最后由 菊花的忧伤 于 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
你好
第一位歌手 李嘉诚 歌曲《疯人愿》原唱魏晨
第二位歌手,周一琦 歌曲《裂缝中的阳光》原唱林俊杰
第三位歌手,张金丹.歌曲《没那么简单》原唱黄小琥
第四位歌手,余廷挺,歌曲《到不了》原唱 李代沫
作者: 菊花的忧伤    时间: 2024-5-30 15:57

回复 1# 菊花的忧伤


    我试过加上单引号和双引号都无法执行
作者: 菊花的忧伤    时间: 2024-5-30 16:09

本帖最后由 菊花的忧伤 于 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. 请按任意键继续. . .
复制代码

作者: czjt1234    时间: 2024-5-30 16:15

原始文本是啥样
目标文本是啥样

不一定非要用 for 来实现
作者: 77七    时间: 2024-5-30 16:46

初学,不要把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

回复 4# czjt1234


    在学习for,所以才用的for
作者: 菊花的忧伤    时间: 2024-5-30 17:17

  1. 请按任意键继续. . .
  2. [holle word] [] []
  3. [你好] [] []
  4. [第一位] [手 李嘉诚 ] [《疯人愿》原唱魏晨]
  5. [第二位] [手,周一琦 ] [《裂缝中的阳光》原唱林俊杰]
  6. [第三位] [手,张金丹.] [《没那么简单》原唱黄小琥]
  7. [第四位] [手,余廷挺,] [《到不了》原唱 李代沫 ]
  8. [第四位手,余廷挺,] [《到不了》原唱 李代沫 ] []
  9. [第四位手,余廷挺,] [《到不了》原唱 李代沫 ] []
  10. 请按任意键继续. . .
复制代码
回复 5# 77七
你这个也只是识别一个字符,我想两个同时一起匹配
作者: 菊花的忧伤    时间: 2024-5-30 17:18

  1. holle word
  2. 你好
  3. 第一位歌手 李嘉诚  《疯人愿》原唱魏晨
  4. 第二位歌手,周一琦  《裂缝中的阳光》原唱林俊杰
  5. 第三位歌手,张金丹. 《没那么简单》原唱黄小琥
  6. 第四位歌手,余廷挺, 《到不了》原唱 李代沫
复制代码
回复 4# czjt1234


    目标想这样
作者: Batcher    时间: 2024-5-30 17:54

回复 7# 菊花的忧伤


delims不能以一个字符串为整体作为分割符。
变通方法:
使用set命令把字符串【歌曲】替换成单个字符【/】,然后delims=/
作者: 77七    时间: 2024-5-30 17:57

回复 7# 菊花的忧伤


多写多试
5楼说明了,歌曲不能当作一个整体作为分隔符,那么只用"曲"呢?或者只用"歌"呢?
作者: 菊花的忧伤    时间: 2024-5-30 18:24

回复 9# Batcher


    ok懂了,这个算不算是delims=的局限性呢
作者: Five66    时间: 2024-5-30 18:34

delims=后面的不是一个整体
可以试着想想它为啥不作为一个整体




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