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

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

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

跪求高手,谢谢

[ 本帖最后由 xiugakei 于 2011-2-11 15:06 编辑 ]
1

评分人数

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

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

TOP

谢谢CUer的回复,但是不成功。。。

TOP

支持每行最长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
复制代码

TOP

回复 3楼 的帖子

你是不是没有sed命令?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 5楼 的帖子

我在sf.net下载了sed,放在c:/windows里面,但是运行也没用。是不是要重启?还是我安装错误?

TOP

回复 6楼 的帖子

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

命令行工具 sed.exe 下载地址:
http://bbs.bathome.net/thread-3981-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

把附件发上来看看吧。

TOP

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

TOP

utf-8...
那当然没反应了...

TOP

那么请问各位高手怎么解决?

TOP

回复 10楼 的帖子

先改为ansi,再用你的代码,,可以去掉英文,但是换行还没去掉。还有,我想直接用utf8的,不想编码改来改去,请问有办法实现吗

TOP

不要换行更简单,我当时还是特意加了一个回车上去的...
  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
复制代码
1

评分人数

TOP

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

TOP

返回列表