文件按时间顺序和名称顺序批量加序号前缀重命名

写在前面

苯人近期学习时发现Typedown和vscode打开文件夹时均会按名称顺序显示(正确的是应该按时间顺序显示),以Typedown为例(vscode也许有解决办法,但我没找到)
alt text
实际上我希望它以修改时间顺序显示,但在本地磁盘修改排序并不能让它们在Typedown上也正确排序,于是联想到给每个文件名前加个序号前缀就能按所需显示了。上网查找批量重命名发现很多是使用第三方软件,几乎都要开昂贵的会员,遂了解到了Windows批量处理脚本

脚本使用说明

首先在要修改的文件夹下新建.txt文件,脚本写入后,将该文件名后缀修改为.bat,点击运行即可

按名称顺序加序号前缀

@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir/b/a-d') do (
set /a cnt+=1
set fn=00!cnt!_!
ren "%%i" "!fn:~-3!%%i")
pause

效果如图:
text

在Typedown中效果:
text

按时间顺序加序号前缀

@echo off
setlocal enabledelayedexpansion
:: 初始化计数器
set /a b=0
:: 遍历当前目录下的所有文件,按时间顺序
for /f "delims=" %%f in ('dir /b /od *.*') do (
  if not "%%f"=="%~nx0" (
    set /a b+=1
    :: 确保序号为两位长度,不足两位时前面补零
    set "num=00!b!"
    set "num=!num:~-2!"
    :: 重命名文件,格式为两位序号加上文件的原始名
    ren "%%f" "!num!_%%f"
    echo Renamed: %%f to !num!_%%f
  )
)
pause

注意 为了在Typedown里能够正确按序号显示,这里序号固定为两位长度,不够左位补零。Typedown我真的讨厌你,1之后本来应该是2,你却是10!!!!!!🤬🤬🤬

效果如图
text

在这里插入图片描述

到这就可以按序阅读啦😎

去掉文件原名第一位后加序号前缀
@echo off
setlocal enabledelayedexpansion
:: 初始化计数器
set /a b=0
:: 遍历当前目录下的所有文件,按时间顺序
for /f "delims=" %%f in ('dir /b /od *.*') do (
  if not "%%f"=="%~nx0" (
    set /a b+=1
    :: 确保序号为两位长度,不足两位时前面补零
    set "num=00!b!"
    set "num=!num:~-2!"
    :: 获取文件原始名去掉第一位后的部分
    set "originalName=%%f"
    set "modifiedName=!originalName:~1!"
    :: 重命名文件,格式为两位序号加上文件原始名去掉第一位
    ren "%%f" "!num!!modifiedName!"
    echo Renamed: %%f to !num!_!modifiedName!
  )
)
pause

效果如图:
在这里插入图片描述

有问题可以一起探讨喔😲

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值