批处理怎样在原文件名中插入随机序号?

批处理怎样在原文件名中插入随机序号?有300多个MP4文件,并且不断更新中,放在车载播放器听,U盘中MP4文件总是按名称序次排列,MP4文件的顺序总是不变,我想用一个批处... 批处理怎样在原文件名中插入随机序号?

有300多个MP4文件,并且不断更新中,放在车载播放器听,U盘中MP4文件总是按名称序次排列,MP4文件的顺序总是不变,我想用一个批处理一键修改他们的排列顺序,隔断时间更新视频文件时执行一次随机排列,为此我想到在每文件名前加个随机数字序号,修改后MP4文件会被打乱重新排列一次,于是找到以下一段代码,但这段代码只能全部重新排序为纯数字,而不能保留原文件名并插入随机序号。
求:在原文件名前插入随机序号,最好是三位数或四位数。不甚感激!

例如:

A.MP4
B.MP4
C.MP4
D.MP4 ...

执行批处理修改文件名后,改成

001.A.MP4
002.B.MP4
003.C.MP4
004.D.MP4 ...

其中MP4文件会不同,像以下这样:
001.B.MP4
002.C.MP4
003.D.MP4
004.A.MP4 ...

@echo off
setlocal enabledelayedexpansion
set "n=0"
for /f "delims=" %%a in ('dir/a/b *.mp4') do call :a "%%a"
for /f "delims=" %%a in ('dir/a/b/on *.mp4') do set/a "n+=1"&ren "%%a" "!n:~-3!%%~xa"
echo 处理完成,按任意键退出...
exit
:a
ren "%~1" "%random%%~x1" || goto a
展开
 我来答
yyykkkyyyy
推荐于2016-04-19 · TA获得超过3136个赞
知道大有可为答主
回答量:2691
采纳率:40%
帮助的人:3315万
展开全部

要想反复运行还不是那么简单呢 (未测试请先备份)
批处理放要处理的文件夹运行,编号形式为三位数加下划线接原文件名
请确定文件总数不要超,代码第一行的1000中0的个数决定编号位数可自己改
如果已有这种形式mp4文件会先去掉原编号
编号总是从001开始顺序编号但对应的mp4文件是随机的
无论有无新文件加入,每运行一次会重排一次

@echo off&cd/d %~dp0&set/a n=1000
setlocal enabledelayedexpansion
for /f "tokens=1* delims=_" %%i in (
'dir/b/a-d *.mp4^|findstr/b "[0-9][0-9]*_"')do ren "%%i_%%j" "%%j"
for %%i in (*.mp4)do set "#!random!=%%i"
for /f "tokens=1* delims==" %%i in ('set #')do (
   set/a n+=1
   echo !n:~1!_%%j
   ren "%%j" "!n:~1!_%%j"
)
set/p=按任意键退出... <nul&pause>nul
依梦琴瑶
高粉答主

2014-09-07 · 说的都是干货,快来关注
知道顶级答主
回答量:6.9万
采纳率:82%
帮助的人:1.7亿
展开全部
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /a-d/b/on *.mp4') do (
set /a Num=!random!%%9000+1000
ren "%%~a" "!Num!.%%~a"
)
pause

生成四位数的随机数

追问
依梦琴瑶,您好,谢谢。
你的这段能够实现插入命名,可是是随机数字,有重复序号或者有间隔号,不能顺序数字。

我找到的上面那段代码,可以随机命名MP4文件,而且数字顺序依次的。

实际上就是,将上面代码的序号结果,添加在文件名首就可了。
追答
也就是说文件全部打乱,然后把打乱后的文件按编号顺序排列,对吗?

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式