需要 for /f 的文本是一个 Unicode 编码的文本, 然后需要从文本里面提取出 (括号) 的内容, 以及括号后面的 序号.
需求:
1. 括号的内容包括:√ × 以及字母,即只有一个字符。
2. 在上面的需求的基础上,不知道是否能够支持从一个字符到多个字符的提取。
3. 序号是从 1 递增,虽然可以使用 for /l 来重新输出序号,但仍然希望从文本中提取,避免出现错误。
4. 文本里含有 "A、输出功率 B、转速 C、运转均匀性 D、扭矩 " 这样的答案, 提取的时候需要避开这样的内容
最后, 上面的需求其实可以把文本转为 ANSI 编码, 反正结果不影响.
只不过想要知道, 如果需要提取的文本是属于 Unicode 编码, 有无办法进行 for /f 处理? 还是说同样在处理之前转换成 ANSI? 然后还原?
如果 for /f 实在没办法对 Unicode 编码处理, 有否第三方命令或者程序可以推荐一下?
示例文本:- (√)l、发动机怠速时,正常工作油压是0.2Mpa。
- (×)2、发动机向蓄电池充电时,电流表在正常情况下,指针应指向“-”号。
- (×)3、机油压力表的作用是显示机油温度。
- (×)4、水温表的作用是显示冷却水的水量。
- (√)5、分电器白金的作用是接通和断开高压电路。
- (×)6、发动机完成一个工作循环过程的顺序是进气、作功、压缩、排气。
- (√)7、将叉车顶起的可靠支撑物是油压千斤顶。
- (×)8、可能用来扑救油品火灾的灭火物质是水。
- (×)9、每天须检查机械设备安全装置的人员是安全员。
- (√)10、
- …………
- (C)240、
- A、输出功率 B、转速 C、运转均匀性 D、扭矩
复制代码 解决办法:- @echo off
- (for /f "tokens=1,2 delims=()、" %%a in ('type a.txt^|findstr "^("') do (
- echo %%a %%b
- ))>b.txt
- pause
复制代码 |