求一批处理 可以将TXT中文字以行为单位随机换行
如一个.TXT文件中的文字内容为:a世界b世界c世界d世界e世界行数是未知的有可能是3行也可能是30行求一批处理可以讲此类TXT文本中文字以行为单位随机换行,并替换原来的...
如一个.TXT文件 中的文字内容为:
a世界
b世界
c世界
d世界
e世界
行数是未知的 有可能是3行也可能是30行
求一批处理 可以讲此类TXT文本中文字以行为单位随机换行,并替换原来的TXT文件。请高手出手 展开
a世界
b世界
c世界
d世界
e世界
行数是未知的 有可能是3行也可能是30行
求一批处理 可以讲此类TXT文本中文字以行为单位随机换行,并替换原来的TXT文件。请高手出手 展开
2个回答
展开全部
@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随机换行
展开全部
随机换行,换几次有要求吗,文本不需要随即调换吧?
追问
不需要 就是 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世界
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询