标题: [文本处理] [已解决]求助批处理for命令"delims="后面可以是中文,这个怎么实现 [打印本页]
作者: 菊花的忧伤 时间: 2024-5-30 15:57 标题: [已解决]求助批处理for命令"delims="后面可以是中文,这个怎么实现
本帖最后由 菊花的忧伤 于 2024-5-31 14:43 编辑
- @echo off
-
- rem 获取test1.txt文本的数据
- for /f "delims=歌曲" %%i in (test1.txt) do echo %%i
- pause
复制代码
txt文本
holle word
你好
第一位歌手 李嘉诚 歌曲《疯人愿》原唱魏晨
第二位歌手,周一琦 歌曲《裂缝中的阳光》原唱林俊杰
第三位歌手,张金丹.歌曲《没那么简单》原唱黄小琥
第四位歌手,余廷挺,歌曲《到不了》原唱 李代沫
作者: 菊花的忧伤 时间: 2024-5-30 15:57
回复 1# 菊花的忧伤
我试过加上单引号和双引号都无法执行
作者: 菊花的忧伤 时间: 2024-5-30 16:09
本帖最后由 菊花的忧伤 于 2024-5-30 16:11 编辑
- @echo off
-
- set var=歌曲
- pause
- echo %var%
- pause
- for /f "delims=%var%" %%i in (test1.txt) do echo %%i
- pause
复制代码
回复 1# 菊花的忧伤
这样弄只能识别到歌,或者曲的单字符,不能有连续写法,各位大佬们- 请按任意键继续. . .
- 歌曲
- 请按任意键继续. . .
- holle word
- 你好
- 第一位
- 第二位
- 第三位
- 第四位
- 请按任意键继续. . .
复制代码
作者: czjt1234 时间: 2024-5-30 16:15
原始文本是啥样
目标文本是啥样
不一定非要用 for 来实现
作者: 77七 时间: 2024-5-30 16:46
初学,不要把tokens= 省略,多写多试,就知道怎么用了。- @echo off
-
- rem 获取test1.txt文本的数据
- for /f "tokens=1-3 delims=歌曲" %%i in (test1.txt) do (
- echo [%%i] [%%j] [%%k]
- )
- pause
复制代码
作者: 菊花的忧伤 时间: 2024-5-30 17:11
回复 4# czjt1234
在学习for,所以才用的for
作者: 菊花的忧伤 时间: 2024-5-30 17:17
- 请按任意键继续. . .
- [holle word] [] []
- [你好] [] []
- [第一位] [手 李嘉诚 ] [《疯人愿》原唱魏晨]
- [第二位] [手,周一琦 ] [《裂缝中的阳光》原唱林俊杰]
- [第三位] [手,张金丹.] [《没那么简单》原唱黄小琥]
- [第四位] [手,余廷挺,] [《到不了》原唱 李代沫 ]
- [第四位手,余廷挺,] [《到不了》原唱 李代沫 ] []
- [第四位手,余廷挺,] [《到不了》原唱 李代沫 ] []
- 请按任意键继续. . .
复制代码
回复 5# 77七
你这个也只是识别一个字符,我想两个同时一起匹配
作者: 菊花的忧伤 时间: 2024-5-30 17:18
- holle word
- 你好
- 第一位歌手 李嘉诚 《疯人愿》原唱魏晨
- 第二位歌手,周一琦 《裂缝中的阳光》原唱林俊杰
- 第三位歌手,张金丹. 《没那么简单》原唱黄小琥
- 第四位歌手,余廷挺, 《到不了》原唱 李代沫
复制代码
回复 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://www.bathome.net/) |
Powered by Discuz! 7.2 |