标题: [文本处理] 批处理怎么让语句自动换行,自动去标点符号? [打印本页]
作者: laimao 时间: 2010-12-19 20:27 标题: 批处理怎么让语句自动换行,自动去标点符号?
批处理如何让语句自动随机字数(4-6个)换行,自动去标点符号和空格还有数字?
例文章:
据中国之声《新闻晚高峰》报道,住建部最近发布了新版《商品房屋租赁管理办法》,对市场中将房屋分拆、隔断“化整为零”群租行为明令禁止,打隔断出租最高将罚3万。新规将于2011年2月1日施行。新规实施后,隔断间的广大租户将何去何从?
批处理后:
据中国之
声新闻晚高峰
报道住建部最
近发布了新
版商品房
屋租赁管理办
法对市场中
...
直到文章结束
请高手出手帮助!
[ 本帖最后由 laimao 于 2010-12-20 19:16 编辑 ]
作者: laimao 时间: 2010-12-20 19:10
Ding. Shang. Qu
作者: laimao 时间: 2010-12-20 20:56
能不能实现啊?帮帮忙啊。。。
作者: ithinkican 时间: 2010-12-20 21:41 标题: 正在编写…
稍候…等写出来后测试通过
作者: laimao 时间: 2010-12-20 21:49 标题: 回复 4楼 的帖子
谢谢 我等着!!!!!
作者: hanyeguxing 时间: 2010-12-20 22:31
到 http://bbs.bathome.net/forum-22-1.html 这里找sed命令行工具的下载
源文件1.txt
输出文件2.txt- @echo off
- sed "s/[0-9]//g; s/[,。?!《》()“”、…—]//g" "1.txt">Hanye.h
- chcp 936 >nul&graftabl 936 >nul
- for /f "delims=" %%a in (Hanye.h) do call:Han "%%a"
- del /q Hanye.h
- exit
- :Han:初始化
- set "Ye=%~1"
- setlocal enabledelayedexpansion
- :Ye:循环分隔单行
- set/a Xing=%random%%%3+4
- >>"2.txt" echo !Ye:~%Gu%,%Xing%!
- set/a Gu+=%Xing%
- if not "!Ye:~%Gu%!"=="" goto:Ye
- Endlocal
复制代码
[ 本帖最后由 hanyeguxing 于 2010-12-20 22:43 编辑 ]
作者: ithinkican 时间: 2010-12-20 23:41 标题: 本人才疏学浅…
没有能在不使用第三方工具的情况下写出来、下面是写的片段以做参考:
@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
::本人不依靠第三方工具,水平有限。以上代码仅做参考,我也很菜。
作者: laimao 时间: 2010-12-21 00:01 标题: 回复 6楼 的帖子
你的这个段代码 生成出来的2.txt 显示的会是乱码 是什么原因 如何解决呢。
作者: laimao 时间: 2010-12-21 00:02 标题: 回复 7楼 的帖子
很感谢!但不知道怎么用。。。
作者: laimao 时间: 2010-12-21 03:54
另外问下 如何去换行符
例:
1
3
3
批处理后:
1
3
3
作者: jixun66 时间: 2010-12-21 05:05 标题: 回复 10楼 的帖子
文本内容在1.txt- for /f "tokens=1*" %%i in (1.txt) do echo %%i
复制代码
作者: ithinkican 时间: 2010-12-21 11:00
sed为第三方命令行工具、如果没有安装则无法正常使用…
作者: ithinkican 时间: 2010-12-21 11:08
经学习Han…的代码:固定范围内随机取值后,比本人写的代码简洁、高效。特研究一番。
%random%%%3+4(随机取值除3的余数再加4,所以随机在4-6间)(可叁照此例拓展使用)
作者: lvsehuaxue 时间: 2010-12-21 12:17 标题: 不使用第三方也可以
- @echo off&setlocal enabledelayedexpansion
- set "str=据中国之声《新闻晚高峰》报道,住建部最近发布了新版《商品房屋租赁管理办法》,
-
- 对市场中将房屋分拆、隔断“化整为零”群租行为明令禁止,打隔断出租最高将罚3万。新规将于
-
- 2011年2月1日施行。新规实施后,隔断间的广大租户将何去何从?"
- for %%a in (, 、 ? 《 》 。 “ ” …… ! 0 1 2 3 4 5 6 7 8 9) do set str=!str:%
-
- %a=!
- :lp
- set /a v=%random%%%3+4
- if "%str%" neq "" (
- set str1=!str:~,%v%!
- echo !str1!
- set str=!str:~%v%!
- goto lp
- )
- pause
复制代码
作者: laimao 时间: 2010-12-21 15:44 标题: 回复 11楼 的帖子
您的这个去换行不行哦。。。
作者: laimao 时间: 2010-12-21 15:44 标题: 回复 12楼 的帖子
有sed 生成出的是乱码 。你的代码用不了,怎么用?
作者: yekongfeixian 时间: 2016-4-19 20:45
我是个新手,不太懂第三方怎么使用,我的想法是:原文件a.txt 需要一个批处理,去空格,去换行,去所有标点符号,最后以每行166个字换行;最最后输出新的b.txt
作者: happy886rr 时间: 2016-4-19 20:56
回复 17# yekongfeixian 复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |