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

[文本处理] 批处理怎么让语句自动换行,自动去标点符号?

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

例文章:

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

批处理后:

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



请高手出手帮助!

[ 本帖最后由 laimao 于 2010-12-20 19:16 编辑 ]

Ding. Shang.  Qu

TOP

能不能实现啊?帮帮忙啊。。。

TOP

正在编写…

稍候…等写出来后测试通过

TOP

回复 4楼 的帖子

谢谢 我等着!!!!!

TOP

http://bbs.bathome.net/forum-22-1.html 这里找sed命令行工具的下载
源文件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
复制代码

[ 本帖最后由 hanyeguxing 于 2010-12-20 22:43 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

本人才疏学浅…

没有能在不使用第三方工具的情况下写出来、下面是写的片段以做参考:

@echo off
SetLocal EnableDelayEdexpansion
:p
set /a r=%random:~-1%
if !r! lss 4 goto p
if !r! gtr 6 goto p
::以上是随机截取4 - 6 三个数
for /f "delims=、.:;"-=+!()<>?/\|~ tokens=1-20"  %%a in (a.txt) do  @echo %%a %%b %%c  %%d %%e
pause>nul
::本人不依靠第三方工具,水平有限。以上代码仅做参考,我也很菜。

TOP

回复 6楼 的帖子

你的这个段代码 生成出来的2.txt 显示的会是乱码 是什么原因 如何解决呢。

TOP

回复 7楼 的帖子

很感谢!但不知道怎么用。。。

TOP

另外问下 如何去换行符

例:

1

3

3


批处理后:

1
3
3

TOP

回复 10楼 的帖子

文本内容在1.txt
  1. for /f "tokens=1*" %%i in (1.txt) do echo %%i
复制代码

TOP

sed为第三方命令行工具、如果没有安装则无法正常使用…

TOP

经学习Han…的代码:固定范围内随机取值后,比本人写的代码简洁、高效。特研究一番。       
%random%%%3+4(随机取值除3的余数再加4,所以随机在4-6间)(可叁照此例拓展使用)

TOP

不使用第三方也可以

  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=据中国之声《新闻晚高峰》报道,住建部最近发布了新版《商品房屋租赁管理办法》,
  3. 对市场中将房屋分拆、隔断“化整为零”群租行为明令禁止,打隔断出租最高将罚3万。新规将于
  4. 2011年2月1日施行。新规实施后,隔断间的广大租户将何去何从?"
  5. for %%a in (, 、 ? 《 》 。 “ ”  …… !  0 1 2 3 4 5 6 7 8 9) do set str=!str:%
  6. %a=!
  7. :lp
  8. set /a v=%random%%%3+4
  9. if "%str%" neq "" (
  10.    set str1=!str:~,%v%!
  11.    echo !str1!
  12.    set str=!str:~%v%!
  13.    goto lp
  14.   )
  15. pause
复制代码

TOP

回复 11楼 的帖子

您的这个去换行不行哦。。。

TOP

返回列表