求一批处理 可以将TXT中文字以行为单位随机换行

如一个.TXT文件中的文字内容为:a世界b世界c世界d世界e世界行数是未知的有可能是3行也可能是30行求一批处理可以讲此类TXT文本中文字以行为单位随机换行,并替换原来的... 如一个.TXT文件 中的文字内容为:

a世界

b世界
c世界
d世界
e世界

行数是未知的 有可能是3行也可能是30行

求一批处理 可以讲此类TXT文本中文字以行为单位随机换行,并替换原来的TXT文件。请高手出手
展开
 我来答
albumin
推荐于2016-11-13 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2409万
展开全部
@echo off&setlocal enabledelayedexpansion
set lines=0
set "file=test.txt"
for /f "delims=" %%a in (%file%) do set /a lines+=1
for /f "delims=" %%a in (%file%) do call :giveline "%%a"
(for /l %%a in (1,1,%lines%) do  echo !row%%a!)>#
move # %file%
goto :end
:giveline 
set  num=%random%
set /a num%%=lines
set /a num+=1
if not defined row%num% (
call set "row%num%=%~1"
) else goto :giveline
:end

对文件test.txt随机换行

百度网友1153044d1
2014-06-05 · TA获得超过183个赞
知道小有建树答主
回答量:302
采纳率:100%
帮助的人:261万
展开全部
随机换行,换几次有要求吗,文本不需要随即调换吧?
追问
不需要 就是 2 3次吧
追答

代码如下:

@echo off
setlocal ENABLEDELAYEDEXPANSION

set file="1.txt"
set /a nloop=3

for /l %%i in (1,1,%nloop%) do (
call:fun
)
exit

rem /////////////////////////////////
:fun
for /f %%i in ('type %file%^|find /c /v ""') do (
set /a r=%random% %% %%i
)
set /a r+=1

if exist tmp.txt (del /q/f tmp.txt)
if exist tmptmp.txt (del /q/f tmptmp.txt)
>>tmptmp.txt (type %file%|find /v /n "")

set /a n=0
for /f "delims=" %%i in ('type tmptmp.txt') do (
>>tmp.txt echo %%i
set /a n+=1
if !n! equ %r% (goto:next)
)
:next
>>tmp.txt echo [0]
>>tmp.txt more +%r% tmptmp.txt

if exist %file% (del /q/f %file%)
for /f "tokens=1* delims=]" %%i in (tmp.txt) do (
set tmp=%%j
if "!tmp!" equ "" (
>>%file% echo.
) else (
>>%file% echo !tmp!
)

)
if exist tmp.txt (del /q/f tmp.txt)
if exist tmptmp.txt (del /q/f tmptmp.txt)
goto:eof


运行前1.txt内容:

a世界

b世界
c世界
d世界
e世界
f世界
g世界


运行后1.txt内容:

a世界


b世界

c世界
d世界
e世界
f世界

g世界
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式