中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-11 15:50
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 【求助】(可能P不行,等vbs终结者slore来解决)特殊换行 查看 962 回复 11
楼 主 【求助】(可能P不行,等vbs终结者slore来解决)特殊换行 发表于 2009-04-06 04:26 ·  中国 广东 深圳 电信
初级用户
★★
积分 153
发帖 103
注册 2008-03-27 19:38
18年会员
UID 114210
性别 男
状态 离线
求一bat或vbs脚本或其它脚本(不用sed也行,我写的bat很丑,而且碰到"就ge了)
如有一个文本文件1.txt
想用sed处理后,生成1_new.txt

即使1.txt中如有哪行超过100个汉字(主要是汉字,字母和符号谁便,1个最多应该相当于一个汉字吧),后面的的则另起一行,一直到少于100子则可。
若一行没有超过100个字符的,不动,即1.txt中该行前面有超过100字符的行,不会挤到前面来

[ Last edited by kioskboy on 2009-4-7 at 22:26 ]
2 发表于 2009-04-06 07:06 ·  中国 江西 南昌 电信
贫困用户
积分 -1
发帖 1
注册 2009-04-05 01:04
17年会员
UID 142144
性别 男
状态 离线
ding
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
HAT -2 2009-04-06 08:15
3 发表于 2009-04-06 08:08 ·  中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
这意思是超一百字的行,每一百字拆多行?

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
4 发表于 2009-04-06 08:29 ·  中国 广东 深圳 电信
初级用户
★★
积分 153
发帖 103
注册 2008-03-27 19:38
18年会员
UID 114210
性别 男
状态 离线

谁有答案没,有的话贴一下
在线等。。。。
快要睡觉了。。。

[ Last edited by kioskboy on 2009-4-6 at 09:37 ]
5 发表于 2009-04-06 10:43 ·  中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
-_-看样子是比较难滴

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
6 发表于 2009-04-08 11:09 ·  中国 广东 深圳 电信
初级用户
★★
积分 153
发帖 103
注册 2008-03-27 19:38
18年会员
UID 114210
性别 男
状态 离线
真的吗
如过用sed或awk做,难在哪里呢
等这用,用什么脚本解决都可以
7 发表于 2009-04-08 11:27 ·  中国 广东 广州 广东金万邦科技投资有限公司(新一代数据中心)IDC机房(BGP)
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
sed不支持中文,如果只是要100个字符的话,set就可以了...
8 发表于 2009-04-08 11:33 ·  中国 广东 深圳 电信
初级用户
★★
积分 153
发帖 103
注册 2008-03-27 19:38
18年会员
UID 114210
性别 男
状态 离线
那就麻烦用set帮我整整吧
9 发表于 2009-04-08 12:17 ·  中国 广东 广州 广东金万邦科技投资有限公司(新一代数据中心)IDC机房(BGP)
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
@echo off
set codes=100
(
for /f "delims=" %%a in (1.txt) do (
set str=%%a
Setlocal Enabledelayedexpansion
call :lp
endlocal
)
)>1_new.txt
start "" "1_new.txt"
goto :eof
:lp
set/p=!str:~0,%codes%!<nul
echo.
if not "!str:~%codes%!"=="" (
set str=!str:~%codes%!
goto :lp
)
goto :eof
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
yishanju +8 2009-04-08 13:13
10 发表于 2009-04-08 13:19 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
@echo off

(for /f "delims=" %%a in (1.txt) do (
set str=%%a
Setlocal Enabledelayedexpansion
for /l %%i in (1,1,92) do (
if defined str (
echo.!str:~0,100!
set "str=!str:~100!"
)
)
endlocal
))>a.txt
start a.txt

[ Last edited by netbenton on 2009-4-8 at 11:21 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
yishanju +8 2009-04-08 13:35
精简
=> 个人网志
11 发表于 2009-04-09 01:52 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
最好上传个样本。

这个要求一般会点VBS的都可以解决的。。。
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
12 发表于 2009-04-09 03:35 ·  中国 湖北 黄石 电信
中级用户
★★
积分 330
发帖 244
注册 2006-04-14 14:07
20年会员
UID 53823
性别 男
来自 湖北
状态 离线
//我也来贴个JS脚本

if(WScript.arguments.length!=1){
WScript.echo("请拖动要转换的文本文件到该脚本的图标上!\n\n"
+"或直接在命令行下输入参数!");
WScript.quit();
}
doConverting(WScript.arguments(0));

function doConverting(File_Path){
var fso=new ActiveXObject("scripting.filesystemobject");
try{
//备份文件
fso.CopyFile(File_Path,File_Path+".bak");
var fl=fso.opentextfile(File_Path,1);
var sss=fl.readall();
}catch(err){
WScript.quit();
}
var fl=fso.opentextfile(File_Path,2);

//把下面的数字100改为相应的数值即可控制每行字数
//如把“{100}”改为“{50}”,即每行50字
sss=sss.replace(/(.{100})/mg,"$1\r\n");
fl.write(sss);
}
论坛跳转: