标题: 顺序排列文本内容的问题
[打印本页]
作者: xeibobin
时间: 2008-5-14 18:36
标题: 顺序排列文本内容的问题
文本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
搜索了论坛没有这样的批处理内容,呵呵,希望有高手帮我看看.
作者: pusofalse
时间: 2008-5-14 18:44
体力活~
作者: xeibobin
时间: 2008-5-14 20:19
所以不知道怎么办
呵呵
应该批处理是可以实现吧
作者: xeibobin
时间: 2008-5-14 20:23
如果考虑把空行的内容提取为几个新的文本,以第一行的字母数字再判断添加成一个新的文本.....可是我不懂怎么用批处理写出来
作者: namejm
时间: 2008-5-14 21:36
演示代码如下:
@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
作者: moniuming
时间: 2008-5-14 22:39
哇噢,JM回来啦...............
作者: 26933062
时间: 2008-5-14 23:58
@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
作者: terse
时间: 2008-5-15 00:26
@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
作者: xeibobin
时间: 2008-5-15 11:37
谢谢namejm,26933062,terse,都试了可以用,就是26933062的批处理偶尔会出错,没有关系了,现在已经可以了,就是懵懵懂懂看不大明白意思,呵呵,正在学习中了....
作者: xeibobin
时间: 2008-5-15 11:39
评分评错了,到时候再加给26933062,不好意思,现在加不了
作者: HAT
时间: 2008-5-15 13:12
Quote: |
Originally posted by xeibobin at 2008-5-15 11:37 AM:
谢谢namejm,26933062,terse,都试了可以用,就是26933062的批处理偶尔会出错,没有关系了,现在已经可以了,就是懵懵懂懂看不大明白意思,呵呵,正在学习中了.... |
|
哪句代码看不懂就问哪句,自然有人给你讲解的^_^
作者: terse
时间: 2008-5-15 20:12
Quote: |
Originally posted by xeibobin at 2008-5-15 11:39:
评分评错了,到时候再加给26933062,不好意思,现在加不了 |
|
评错了55555555 我退给你吧
作者: xeibobin
时间: 2008-5-16 11:50
Quote: |
Originally posted by terse at 2008-5-15 08:12 PM:
评错了55555555 我退给你吧 |
|
呵呵 不好意思 我是说我小心点给了moniuming
作者: zhu8988850
时间: 2010-7-29 01:14
都是高手啊!