Board logo

标题: [文本处理] 批处理如何将文本中的中文字符/汉字按出现顺序依次替换成指定字母加数字序号的字串? [打印本页]

作者: heyoug    时间: 2016-5-28 10:12     标题: 批处理如何将文本中的中文字符/汉字按出现顺序依次替换成指定字母加数字序号的字串?

需要处理的文本文件A.txt,文本内容包含各种字母、数字、符号、汉字。
要求把文本中A.txt中的所有汉字替换掉,替换格式为A后面加顺序号,相同汉字用相同字串代替
把文本A.txt中的>>等符号在替换成^>>
然后把替换结果保存到B.TXT中,
替换规则保存到C.TXT中,如:A2=中
求高手帮忙!
作者: gawk    时间: 2016-5-28 11:09

请把测试用的A.txt、B.txt、C.txt打包压缩传上来
作者: heyoug    时间: 2016-5-28 11:16

B.TXT 和C.TXT 文本为空白  是输出用的文件。
作者: gawk    时间: 2016-5-28 12:00

本帖最后由 pcl_test 于 2016-5-29 13:06 编辑

回复 1# heyoug


让你上传B.txt、C.txt的目的是想知道它长什么样子,然后才好写代码。
你顶楼的描述不太好理解。
另外,最好打包压缩上传,不要直接放文本。否则格式可能会乱。
作者: heyoug    时间: 2016-5-28 12:07

本帖最后由 pcl_test 于 2016-5-29 13:06 编辑

回复 4# gawk


    已经上传,谢谢
作者: pcl_test    时间: 2016-5-29 12:44

举个栗子
  1. //&cls&more +14 "%~f0"|cscript -nologo -e:jscript "%~f0"&pause&exit
  2. var i = 0, hz = {};
  3. var txt = WSH.StdIn.ReadAll().replace(/[\u4E00-\u9FA5]/g, function(a){
  4.     if(!hz[a]){
  5.         i++;
  6.         hz[a]='WTF'+i;
  7.     }
  8.     return hz[a];
  9. });
  10. WSH.echo(txt.replace(/\*\/\s*$/, '').replace(/>>/g, '^$&'));   //结果
  11. for(var a in hz)WSH.echo(hz[a]+'='+a);    //替换规则
  12. /*
  13. a) WinRAR 在创建 RAR 压缩文件时不存储 NTFS 的 "压缩" 属性;
  14. b) WinRAR 的命令行模式在有 @filelist 参数存在而 'filelist' 不存在时崩溃。此
  15. 问题只影响 WinRAR.exe,不影响 RAR.exe;
  16. c) 如果在压缩时指定了 -x*\somefolder\* 排除掩码,并且当前文件夹名中包含
  17. 'somefolder',WinRAR会排除所有文件并停止创建压缩文件;
  18. d) GUI 自解压压缩文件不能在 Windows 预安装环境(Windows PE)中使用。
  19. >>  =
  20. */
复制代码

作者: heyoug    时间: 2016-5-30 08:41

老大,这个怎么用呀,看不明白?




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