Board logo

标题: [文本处理] [已解决]批处理怎样在搞flash嵌入字符的时候从xml中筛选中文? [打印本页]

作者: xiugakei    时间: 2011-2-8 02:17     标题: [已解决]批处理怎样在搞flash嵌入字符的时候从xml中筛选中文?

我在搞flash,嵌入字符的时候,往往要把一个xml(其实是txt)里面的中文字符筛选出来。
求高手帮忙做个bat来解决。
要求:
比如有一个文档1.txt,里面有一堆中文、英文、符号(其实都是html语言)。求个1.bat,运行之后,生成个2.txt,里面有齐1.txt的所有中文,但是一个英文和符号都没有,也不能有换行。

跪求高手,谢谢

[ 本帖最后由 xiugakei 于 2011-2-11 15:06 编辑 ]
作者: CUer    时间: 2011-2-8 20:22

  1. sed "s/[\x21-\x7E]//g" 1.txt | sed ":a;$!N;s/\n//;ta;P;D" | more >2.txt
复制代码

作者: xiugakei    时间: 2011-2-8 23:56

谢谢CUer的回复,但是不成功。。。
作者: CrLf    时间: 2011-2-9 05:15

支持每行最长2000字符,如果追求完美,可以套用计算字符长度的代码:
  1. @echo off
  2. (for /f "delims=" %%a in (1.txt) do (
  3.     set tmp=%%a
  4.     setlocal enabledelayedexpansion
  5.     for /l %%a in (0 1 2000) do (
  6.         if "!tmp:~%%a,1!" gtr "Z" set /p=!tmp:~%%a,1!<nul
  7.     )
  8.     echo;
  9.     endlocal
  10. ))>2.txt
  11. pause
复制代码

作者: Batcher    时间: 2011-2-9 09:08     标题: 回复 3楼 的帖子

你是不是没有sed命令?
作者: xiugakei    时间: 2011-2-9 11:48     标题: 回复 5楼 的帖子

我在sf.net下载了sed,放在c:/windows里面,但是运行也没用。是不是要重启?还是我安装错误?
作者: Batcher    时间: 2011-2-9 12:23     标题: 回复 6楼 的帖子

从论坛下载一个,把它和批处理文件放到同一个目录下试试。

命令行工具 sed.exe 下载地址:
http://bbs.bathome.net/thread-3981-1-1.html
作者: asnahu    时间: 2011-2-9 13:53

把附件发上来看看吧。
作者: xiugakei    时间: 2011-2-9 15:00

感谢各位回复。但是问题还没解决。
下载新版sed,放在改bat所在文件夹,运行2楼代码,提示缺少libintl3.dll。
下载旧版sed,放在改bat所在文件夹,运行2楼代码,还有很多英文没去掉完全。
4楼的运行后没反应。
我上传我一个压缩包,是我测试用的。
作者: CrLf    时间: 2011-2-9 16:21

utf-8...
那当然没反应了...
作者: xiugakei    时间: 2011-2-11 13:32

那么请问各位高手怎么解决?
作者: xiugakei    时间: 2011-2-11 13:34     标题: 回复 10楼 的帖子

先改为ansi,再用你的代码,,可以去掉英文,但是换行还没去掉。还有,我想直接用utf8的,不想编码改来改去,请问有办法实现吗
作者: CrLf    时间: 2011-2-11 13:40

不要换行更简单,我当时还是特意加了一个回车上去的...
  1. @echo off
  2. (for /f "delims=" %%a in (1.txt) do (
  3.     set tmp=%%a
  4.     setlocal enabledelayedexpansion
  5.     for /l %%a in (0 1 2000) do (
  6.         if "!tmp:~%%a,1!" gtr "Z" set /p=!tmp:~%%a,1!<nul
  7.     )
  8.     endlocal
  9. ))>2.txt
  10. pause
复制代码

作者: xiugakei    时间: 2011-2-11 15:03

感谢zm900612的回帖。我采用了你的代码。再用UTF82ANSI.vbs解决了转换编码的问题了。
附上我的最终代码。




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