永发信息网

求bat代码,文件批量重命名

答案:4  悬赏:30  手机版
解决时间 2021-01-30 13:27
  • 提问者网友:别再叽里呱啦
  • 2021-01-29 15:42
我这个批量重命名比较特殊,不是普通的批量重命名。因为有些时候windows里面和其他软件的按照日期重命名顺序不一样,但是windows的正确,所以我要先在windows里面按照时间顺序排列以后,f2批量重命名,再用其他软件重新批量命名。现在的问题是windows批量重命名格式跟其他软件不一样,位数不对,所以再其他软件了无法正确显示。比如:
windows显示的顺序(正确的顺序)是:
acd
acd (1)
acd (2)
acd (3)
acd (4)
acd (5)
acd (6)
acd (7)
acd (8)
acd (9)
acd (10)
acd (11)
acd (12)
acd (13)
acd (14)
acd (15)

其他软件显示的顺序是:
acd (1)
acd (10)
acd (11)
acd (12)
acd (13)
acd (14)
acd (15)
acd (2)
acd (3)
acd (4)
acd (5)
acd (6)
acd (7)
acd (8)
acd (9)
acd

现在我想求一段bat代码,按照windows里的顺序重新批量命名,比如:
acd 000001
acd 000002
acd 000003
acd 000004
acd 000005
acd 000006
acd 000007
acd 000008
acd 000009
acd 000010
acd 000011
acd 000012
acd 000013
acd 000014
acd 000015
acd 000016
最佳答案
  • 五星知识达人网友:慢性怪人
  • 2021-01-29 16:26
看看生成的批处理脚步是否符合你的要求,符和再运行。
@echo off
setlocal enabledelayedexpansion
(for /f "tokens=1-3 delims=()" %%i in ('dir/b acd*') do (
set/a n=%%j+1
set fn=00000!n!
echo !fn!
set fn=!fn:~-6,6!
echo !fn!
if "%%j" neq "" (echo copy %%i(%%j^)%%k "acd !fn!%%k")else echo copy %%i%%k "acd !fn!%%k"
))>renren.bat
notepad renren.bat
全部回答
  • 1楼网友:几近狂妄
  • 2021-01-29 17:39
修改一下FOR循环的起止数字,不要从1开始,从1000001开始,然后从第二位开始截取到最后就可以了. 改一下你原有的批处理应该就能用.
  • 2楼网友:持酒劝斜阳
  • 2021-01-29 17:10
  @echo off color 0e & mode con: cols=79 lines=25 cls&setlocal enabledelayedexpansion echo.&echo.&echo.&echo.&echo. echo   说明: echo.&echo   使用本bat文件可批量重命名本文件所在文件夹下的所有文件 echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo. set /p filename=  请输入新的文件名(直接以数字重命名请直接回车): echo.&set /p houzhui=  请输入重命名的文件后缀类型(全部重命名请输入*): for /f "delims=" %%i in ('dir /a-d/b *.%houzhui%') do ( set/a a+=1 ) set b=!a! if !b! geq 1000 goto :a if !b! geq 100 goto :b else  goto :c :a set a=1 for /f "delims=" %%j in ('dir /a-d/b *.%houzhui%') do ( set name=000!a! if not "%%~ni"=="%~n0" ( ren "%%j" "%filename%!name:~-5,4!.%houzhui%" set/a a+=1 ) ) echo.&echo.&echo.&echo.&echo  操作完成,按任意退出…… exit pause >nul :b set a=1 for /f "delims=" %%j in ('dir /a-d/b *.%houzhui%') do ( set name=00!a! if not "%%~ni"=="%~n0" ( ren "%%j" "%filename%!name:~-4,3!.%houzhui%" set/a a+=1 ) ) echo.&echo.&echo.&echo.&echo  操作完成,按任意退出…… exit pause >nul :c set a=1 for /f "delims=" %%j in ('dir /a-d/b *.%houzhui%') do ( set name=0!a! if not "%%~ni"=="%~n0" ( ren "%%j" "%filename%!name:~-3,2!.%houzhui%" set/a a+=1 ) ) echo.&echo.&echo.&echo.&echo  操作完成,按任意退出…… exit pause >nul
  • 3楼网友:蓝房子
  • 2021-01-29 16:48
为防搞错给你新建了一文件夹 newd @echo off&setlocal enabledelayedexpansion set str=acd set/a n=1000000 md newd 2>nul for /f "delims=" %%i in ('dir/b/od %str%*')do ( echo %%i set/a n+=1 copy "%%i" "newd\%str% !n:~-6!%%~xi">nul) start newd
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯