批处理 随机排序并命名文件序号
发布网友
发布时间:2022-04-22 17:49
我来回答
共2个回答
热心网友
时间:2023-11-14 10:58
给你一个例子:批处理怎样在原文件名中插入随机序号?如下:
批处理放要处理的文件夹运行,编号形式为三位数加下划线接原文件名
请确定文件总数不要超,代码第一行的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追问嗯嗯,虽说我找到了用excel表格的替代办法,但是还是谢了。
热心网友
时间:2023-11-14 10:59
@echo off
cd /d %~dp0
setlocal enabledelayedexpansion
del "%tmp%\list_*.log"
(for %%a in (*.txt) do (
set /a num+=1
echo ^|!num!^|"%%~a"
))>"%tmp%\list_old.log"
:Loop
if !count! equ !num! goto End
set /a line=!random!%%!num!+1
ping 127.0.0.1 -n "1">nul
echo "!okline!," | find ",!line!," >nul && goto loop
findstr "^|!line!|" "%tmp%\list_old.log">>"%tmp%\list_new.log"
findstr /v "^|!line!|" "%tmp%\list_old.log">"%tmp%\list_tmp.log"
move "%tmp%\list_tmp.log" "%tmp%\list_old.log" >nul
set okline=!okline!,!line!
set /a count+=1
goto Loop
:End
for /f "tokens=2 delims=|" %%a in ('type "%tmp%\list_new.log"') do (
set /a txtnum+=1
ren "%%~a" !txtnum!.txt
)
pause