大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
目录
补充后续关联问题:
批处理实例:截取原文件名进行重命名_GeorgeRhua的博客-CSDN博客
批处理实例:利用上一级文件夹名对指定类型的文件重命名,并复制到一个目录下
前言:弄完批处理才发现,其实真要批量给文件按一定顺序重命名,直接按 时间/名称/大小 排好,全选中然后右键“重命名”就好了。命名完的文件名:“自定义名(排序)”,这样排序方式还多样。
哎~,那下文也只是批处理简单代码应用,没有多大实用价值。
目的说明与展示:
看番送壁纸真不戳,不过自己截图后文件名字无关联,打算用批处理文件批量更改。
注:此次重命名是 自定义+序号+后缀,没有用到原有名字(因为此例原名无意义)。
程序中注释的部分,是有关截取原名,再以此自定义的(文件原名有意义)
原图:
处理后:
要点提示
- for 遍历指定文件,取其名 for %%i in (*.png) do ()
- set /a 定义序号(随循环而变)
- for循环内用到序号值 需要使用延迟变量 setlocal EnableDelayedExpansion
.bat 代码
注:其中REM注释部分,大多是关于截取原文件名的,可删。
代码不能高亮展示,很烦
REM rename (图片批量rename)
REM 说明:
REM 遍历所有.png 文件,不用截取文件名字
REM 利用延迟变量n 以此为序号重命名
@echo off
setlocal EnableDelayedExpansion
REM 设置延迟变量 引用变量值要用 !var!
set /a n=1
REM 命名序号 n
for %%i in (*.png) do (
REM set name=%%i
REM echo !name!
REM set cut1=!name:~0,12!
rem 截取 偏移量=0 取12个字符(含空格)
REM set cut2=!name:~0,18!
REM //echo !name:~m,n! 亦可
REM echo !cut2!
REM 输出截取后的名字核验
REM echo "Queen's Blood(2) !cut2!.mp4"
REM 必须加引号
echo "请问您今天要来点牢饭吗_壁纸!n!"
REM 先确定好名字对不对,再重命名
set /a n=!n!+1
REM 序号自增 注意延迟变量
REM ren "%%i" "!cut2!.mp4"
REM ren "%%i" "Queen's Blood(2) !cut2!.mp4"
ren "%%i" "请问您今天要来点牢饭吗_壁纸!n!.png"
REM 重命名 注意延迟变量和后缀
)
pause
2021.3.10补充
%%~ti 利用文件上次修改时间
说明:for 遍历文件的顺序默认是按文件名称(?)
如何按时间遍历呢? 网上没搜到答案。。。
我想的是:利用文件上次修改时间进行一次重命名,再按名称顺序来一次
总结
- 截取后的时间不能直接用来重命名(右图报错),需要格式处理(截取相应字符)
- 截取字符代码:name:~n,m 笔记速查:批处理基础知识
@echo;
@echo off
setlocal EnableDelayedExpansion
REM 设置延迟变量 引用变量值要用 !var!
set /a n=1
REM 命名序号 n
for %%i in (*.pdf) do (
set time2=%%~ti
REM echo !time2!
REM 文件上次修改时间
set time3=!time2:~0,4!.!time2:~5,2!.!time2:~8,2!.!time2:~11,2!.!time2:~-2!
echo !time3!
REM 时间格式处理:2021.03.10.20.09
set /a n=!n!+1
REM 序号自增 注意延迟变量
REM ren "%%i" "!time2!"
REM 无法实现
ren "%%i" "!time3!.pdf"
)
pause
光改成时间命名,下一步重命名还没做。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/197056.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...