中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教下txt文件怎么按每行的字符数排列
作者:
标题: 请教下txt文件怎么按每行的字符数排列 上一主题 | 下一主题
ldlcau
新手上路





积分 10
发帖 4
注册 2007-3-7
状态 离线
『楼 主』:  请教下txt文件怎么按每行的字符数排列

可以用DOS命令实现吗?
例如:
     -------------------
1
23123
12
435345
3
-------------------

排列后变为

-------------------
1
3
12
23123
435345
-------------------

2007-4-10 05:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  


Re ldlcau:

用了一个笨方法来达到目的,只适合处理小文件。
@Echo Off&Setlocal EnableDelayedExpansion
for /f "delims=" %%a in (a.txt) do echo %%a>%%a.ok
for /f "delims=" %%a in ('dir /a-d/b/os *.ok') do (echo %%~na>>file.ext)
for /f "delims=" %%a in (a.txt) do del "%%a.ok"
start notepad file.ext


2007-4-10 13:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
youxi01
高级用户




积分 846
发帖 247
注册 2006-10-27
来自 湖南==》广东
状态 离线
『第 3 楼』:  

纯数字 用sort 似乎更快

2007-4-10 21:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by youxi01 at 2007-4-10 08:18:
纯数字 用sort 似乎更快


兄写一个出来吧,呵呵~


2007-4-11 00:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ldlcau
新手上路





积分 10
发帖 4
注册 2007-3-7
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by lxmxn at 2007-4-10 12:13 AM:

用了一个笨方法来达到目的,只适合处理小文件。
[code]
@Echo Off&Setlocal EnableDelayedExpansion
for /f "delims=" %%a in (a.txt ...

非常感谢,可以实现

要是能过滤一下首尾空格就好了

[ Last edited by ldlcau on 2007-4-10 at 12:14 PM ]

2007-4-11 01:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by ldlcau at 2007-4-10 12:12:
非常感谢,可以实现

要是能过滤一下首尾空格就好了
[ Last edited by ldlcau on 2007-4-10 at 12:14 PM ]


哪里有空格,可以说清楚吗?

如果有空格,那就是你的原文件里面有空格了。


2007-4-11 01:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ansipeter
中级用户

替身



积分 269
发帖 130
注册 2007-3-23
状态 离线
『第 7 楼』:  


@echo off&setlocal enabledelayedexpansion
set/p a=输入最大数的位数:
for /l %%a in (1,1,%a%) do (
set b=!b![0-9]
call :CBD !b!
)
notepad cc.txt
goto:eof
:CBD
(findstr /r "^%1$" bb.txt 2>nul|sort)>>cc.txt


2007-4-11 05:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: