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

批处理用sed生成出文件后是乱码,怎么解决?

[复制链接]
发表于 2010-12-21 19:48:11 | 显示全部楼层 |阅读模式
P和文本都用ANSI 也不行 还是出现乱码 实在没办法 请教各位

批处理如何让语句自动随机字数(4-6个)换行,自动去标点符号和空格还有数字

例文章:

据中国之声《新闻晚高峰》报道,住建部最近发布了新版《商品房屋租赁管理办法》,对市场中将房屋分拆、隔断“化整为零”群租行为明令禁止,打隔断出租最高将罚3万。新规将于2011年2月1日施行。新规实施后,隔断间的广大租户将何去何从?

批处理后:

据中国之
声新闻晚高峰
报道住建部最
近发布了新
版商品房
屋租赁管理办
法对市场中
...
直到文章结束



源文件1.txt
输出文件2.txt

  1. @echo off
  2. sed "s/[0-9]//g; s/[,。?!《》()“”、…—]//g" "1.txt">Hanye.h
  3. chcp 936 >nul&graftabl 936 >nul
  4. for /f "delims=" %%a in (Hanye.h) do call:Han "%%a"
  5. del /q Hanye.h
  6. exit
  7. :Han:初始化
  8. set "Ye=%~1"
  9. setlocal enabledelayedexpansion
  10. :Ye:循环分隔单行
  11. set/a Xing=%random%%%3+4
  12. >>"2.txt" echo !Ye:~%Gu%,%Xing%!
  13. set/a Gu+=%Xing%
  14. if not "!Ye:~%Gu%!"=="" goto:Ye
  15. Endlocal
复制代码

[ 本帖最后由 laimao 于 2010-12-21 20:28 编辑 ]
 楼主| 发表于 2010-12-21 20:04:45 | 显示全部楼层
或者改这段代码 改成读取a.txt  生成出b.txt


  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=据中国之声《新闻晚高峰》报道,住建部最近发布了新版《商品房屋租赁管理办法》"
  3. for %%a in (, 、 ? 《 》 。 “ ”  …… !  0 1 2 3 4 5 6 7 8 9) do set str=!str:%

  4. %a=!
  5. :lp
  6. set /a v=%random%%%3+4
  7. if "%str%" neq "" (
  8.    set str1=!str:~,%v%!
  9.    echo !str1!
  10.    set str=!str:~%v%!
  11.    goto lp
  12.   )
  13. pause
复制代码

[ 本帖最后由 laimao 于 2010-12-21 20:29 编辑 ]
发表于 2010-12-21 21:26:33 | 显示全部楼层
sed是第三方命令行工具,没安装则无法正常使用其功能。下载安装后就可以了…

[ 本帖最后由 ithinkican 于 2010-12-21 21:28 编辑 ]
 楼主| 发表于 2010-12-21 21:41:32 | 显示全部楼层
当然装了。。
发表于 2010-12-22 03:04:45 | 显示全部楼层
你上面代码里面有sed??…
 楼主| 发表于 2010-12-22 14:27:21 | 显示全部楼层

回复 5楼 的帖子

  1. @echo off
  2. sed "s/[0-9]//g; s/[,。?!《》()“”、…—]//g" "1.txt">Hanye.h
  3. chcp 936 >nul&graftabl 936 >nul
  4. for /f "delims=" %%a in (Hanye.h) do call:Han "%%a"
  5. del /q Hanye.h
  6. exit
  7. :Han:初始化
  8. set "Ye=%~1"
  9. setlocal enabledelayedexpansion
  10. :Ye:循环分隔单行
  11. set/a Xing=%random%%%3+4
  12. >>"2.txt" echo !Ye:~%Gu%,%Xing%!
  13. set/a Gu+=%Xing%
  14. if not "!Ye:~%Gu%!"=="" goto:Ye
  15. Endlocal
复制代码
 楼主| 发表于 2010-12-24 03:20:05 | 显示全部楼层
有没有人啊。。

[ 本帖最后由 laimao 于 2010-12-24 03:22 编辑 ]
发表于 2010-12-24 11:20:00 | 显示全部楼层
用记事本打开的确会是乱码,但写字板打开正常。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 00:48 , Processed in 0.022379 second(s), 11 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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