|
xeibobin
初级用户
 
积分 87
发帖 48
注册 2006-11-6
状态 离线
|
『楼 主』:
顺序排列文本内容的问题
文本A.txt内容为:
A103
多余的游戏:
cs1.6中文版
QQ华夏
RECYCLER
A105
多余的游戏:
cs1.6中文版
QQ华夏
RECYCLER
A102
多余的游戏:
cs1.6中文版
RECYCLER
华夏Online
春秋Q传
神泣
飚车
缺少的游戏:
QQ飞车
幻想大陆
穿越火线
赤壁
A104
多余的游戏:
cs1.6中文版
QQ华夏
RECYCLER
A098
多余的游戏:
华夏Online
春秋Q传
神泣
飚车
缺少的游戏:
QQ飞车
幻想大陆
是否可以通过批处理变成按顺序排列的另一个文本B.txt:
A098
多余的游戏:
华夏Online
春秋Q传
神泣
飚车
缺少的游戏:
QQ飞车
幻想大陆
A102
多余的游戏:
cs1.6中文版
RECYCLER
华夏Online
春秋Q传
神泣
飚车
缺少的游戏:
QQ飞车
幻想大陆
穿越火线
赤壁
A103
多余的游戏:
cs1.6中文版
QQ华夏
RECYCLER
A104
多余的游戏:
cs1.6中文版
QQ华夏
RECYCLER
A105
多余的游戏:
cs1.6中文版
QQ华夏
RECYCLER
搜索了论坛没有这样的批处理内容,呵呵,希望有高手帮我看看.
|
|
2008-5-14 18:36 |
|
|
pusofalse
银牌会员
    
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
2 楼』:
体力活~
|

心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^ |
|
2008-5-14 18:44 |
|
|
xeibobin
初级用户
 
积分 87
发帖 48
注册 2006-11-6
状态 离线
|
『第
3 楼』:
所以不知道怎么办
呵呵
应该批处理是可以实现吧
|
|
2008-5-14 20:19 |
|
|
xeibobin
初级用户
 
积分 87
发帖 48
注册 2006-11-6
状态 离线
|
『第
4 楼』:
如果考虑把空行的内容提取为几个新的文本,以第一行的字母数字再判断添加成一个新的文本.....可是我不懂怎么用批处理写出来
|
|
2008-5-14 20:23 |
|
|
namejm
荣誉版主
       batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第
5 楼』:
演示代码如下:
@echo off
:: 行内不能包含空格
:: 程序名不能以A打头,不能包含半角逗号和分号
:: 速度有点慢
cd.>tmp.txt
for /f "delims=" %%i in (A.txt) do (
set "str=%%i"
setlocal enabledelayedexpansion
if "!str:~0,1!"=="A" (
echo.>>tmp.txt
set var=%%i
) else (
endlocal&set var=!var!
)
set /p str!var!=%%i <nul>>tmp.txt
endlocal
)
cd.>B.txt
for /f "delims=" %%i in ('sort tmp.txt') do (
for %%j in (%%i) do >>B.txt echo %%j
echo.>>B.txt
)
del tmp.txt
start B.txt
|

尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。 |
|
2008-5-14 21:36 |
|
|
moniuming
银牌会员
     永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
6 楼』:
哇噢,JM回来啦...............
|
|
2008-5-14 22:39 |
|
|
26933062
银牌会员
    
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
7 楼』:
@echo off&setlocal enabledelayedexpansion
if "%~1"=="" (
for /f "tokens=1* delims= " %%a in ('"%~0" h^|sort') do (
if "%%b"=="" (echo.) else echo.%%b
)
pause&exit
)
for /f "tokens=1* delims=:" %%a in ('findstr /n .* a.txt') do (
set "str=%%b"
if "!str:~0,1!"=="A" set var=%%b
if "%%b"=="" (echo !var!) else echo !var! %%b
)
goto :eof
|

致精致简! |
|
2008-5-14 23:58 |
|
|
terse
银牌会员
    
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
8 楼』:
@echo off
cd.>b.txt
for /f "tokens=1* delims=:" %%i in ('findstr /in "^A[0-9][0-9][0-9]$" "A.txt"^|sort') do set .%%j=%%i
for /f "tokens=1,2 delims=.=" %%i in ('set.') do call:lp %%i %%j
pause
goto :eof
:lp
set .%1=
set/a n=%2-1
if %2 equ 1 (set skip=) else set skip=skip=%n%
for /f "%skip% delims=" %%i in (A.txt) do (
if defined .%%i echo.>>b.txt&goto :eof
>>b.txt echo %%i&set .%1=ok
)
echo.>>b.txt
|

简单!简单!再简单! |
|
2008-5-15 00:26 |
|
|
xeibobin
初级用户
 
积分 87
发帖 48
注册 2006-11-6
状态 离线
|
『第
9 楼』:
谢谢namejm,26933062,terse,都试了可以用,就是26933062的批处理偶尔会出错,没有关系了,现在已经可以了,就是懵懵懂懂看不大明白意思,呵呵,正在学习中了....
|
|
2008-5-15 11:37 |
|
|
xeibobin
初级用户
 
积分 87
发帖 48
注册 2006-11-6
状态 离线
|
『第
10 楼』:
评分评错了,到时候再加给26933062,不好意思,现在加不了
|
|
2008-5-15 11:39 |
|
|
HAT
版主
       
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
11 楼』:
Quote: | Originally posted by xeibobin at 2008-5-15 11:37 AM:
谢谢namejm,26933062,terse,都试了可以用,就是26933062的批处理偶尔会出错,没有关系了,现在已经可以了,就是懵懵懂懂看不大明白意思,呵呵,正在学习中了.... |
|
哪句代码看不懂就问哪句,自然有人给你讲解的^_^
|
|
2008-5-15 13:12 |
|
|
terse
银牌会员
    
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
12 楼』:
Quote: | Originally posted by xeibobin at 2008-5-15 11:39:
评分评错了,到时候再加给26933062,不好意思,现在加不了 |
|
评错了55555555 我退给你吧
|

简单!简单!再简单! |
|
2008-5-15 20:12 |
|
|
xeibobin
初级用户
 
积分 87
发帖 48
注册 2006-11-6
状态 离线
|
『第
13 楼』:
Quote: | Originally posted by terse at 2008-5-15 08:12 PM:
评错了55555555 我退给你吧 |
|
呵呵 不好意思 我是说我小心点给了moniuming
|
|
2008-5-16 11:50 |
|
|
zhu8988850
新手上路

积分 1
发帖 1
注册 2010-6-20
状态 离线
|
|
2010-7-29 01:14 |
|