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

[文本处理] [已解决]求助批处理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
你好
第一位歌手 李嘉诚 歌曲《疯人愿》原唱魏晨
第二位歌手,周一琦 歌曲《裂缝中的阳光》原唱林俊杰
第三位歌手,张金丹.歌曲《没那么简单》原唱黄小琥
第四位歌手,余廷挺,歌曲《到不了》原唱 李代沫
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 1# 菊花的忧伤


    我试过加上单引号和双引号都无法执行

TOP

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

TOP

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

不一定非要用 for 来实现

QQ 20147578

TOP

初学,不要把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
复制代码
bat小白,请多指教!谢谢!

TOP

回复 4# czjt1234


    在学习for,所以才用的for

TOP

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

TOP

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


    目标想这样

TOP

回复 7# 菊花的忧伤


delims不能以一个字符串为整体作为分割符。
变通方法:
使用set命令把字符串【歌曲】替换成单个字符【/】,然后delims=/
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 7# 菊花的忧伤


多写多试
5楼说明了,歌曲不能当作一个整体作为分隔符,那么只用"曲"呢?或者只用"歌"呢?
bat小白,请多指教!谢谢!

TOP

回复 9# Batcher


    ok懂了,这个算不算是delims=的局限性呢

TOP

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

TOP

返回列表