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

[文本处理] [已解决]批处理命令for /f如何提取Unicode编码文字内容?

[复制链接]
发表于 2012-4-18 10:36:50 | 显示全部楼层 |阅读模式
需要 for /f 的文本是一个 Unicode 编码的文本, 然后需要从文本里面提取出 (括号) 的内容, 以及括号后面的 序号.

需求:
1. 括号的内容包括:√ × 以及字母,即只有一个字符。
2. 在上面的需求的基础上,不知道是否能够支持从一个字符到多个字符的提取。
3. 序号是从 1 递增,虽然可以使用 for /l 来重新输出序号,但仍然希望从文本中提取,避免出现错误。

4. 文本里含有 "A、输出功率         B、转速                C、运转均匀性          D、扭矩 " 这样的答案, 提取的时候需要避开这样的内容

最后, 上面的需求其实可以把文本转为 ANSI 编码, 反正结果不影响.
只不过想要知道, 如果需要提取的文本是属于 Unicode 编码, 有无办法进行 for /f 处理? 还是说同样在处理之前转换成 ANSI? 然后还原?

如果 for /f 实在没办法对 Unicode 编码处理, 有否第三方命令或者程序可以推荐一下?

示例文本:
  1. (√)l、发动机怠速时,正常工作油压是0.2Mpa。
  2. (×)2、发动机向蓄电池充电时,电流表在正常情况下,指针应指向“-”号。
  3. (×)3、机油压力表的作用是显示机油温度。
  4. (×)4、水温表的作用是显示冷却水的水量。
  5. (√)5、分电器白金的作用是接通和断开高压电路。
  6. (×)6、发动机完成一个工作循环过程的顺序是进气、作功、压缩、排气。
  7. (√)7、将叉车顶起的可靠支撑物是油压千斤顶。
  8. (×)8、可能用来扑救油品火灾的灭火物质是水。
  9. (×)9、每天须检查机械设备安全装置的人员是安全员。
  10. (√)10、
  11. …………
  12. (C)240、
  13. A、输出功率         B、转速                C、运转均匀性          D、扭矩
复制代码
解决办法:
  1. @echo off
  2. (for /f "tokens=1,2 delims=()、" %%a in ('type a.txt^|findstr "^("') do (
  3.   echo %%a %%b
  4. ))>b.txt
  5. pause
复制代码

评分

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

查看全部评分

发表于 2012-4-18 10:45:06 | 显示全部楼层
本帖最后由 apang 于 2012-4-18 12:13 编辑
  1. @echo off
  2. (for /f "tokens=1,2 delims=()、" %%a in ('type a.txt^|findstr "^("') do (
  3.   echo %%a %%b
  4. ))>b.txt
  5. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
极品小猫 + 1 感谢, 已解决

查看全部评分

 楼主| 发表于 2012-4-18 10:56:33 | 显示全部楼层
忘记说了

文本里含有 "A、输出功率         B、转速                C、运转均匀性          D、扭矩 " 这样的答案, 提取的时候需要避开这样的内容
发表于 2012-4-18 12:13:52 | 显示全部楼层
2楼,试试看
 楼主| 发表于 2012-4-18 12:43:02 | 显示全部楼层
感谢, 已解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 22:26 , Processed in 0.019641 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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