需求:一个文件夹里面的长文件名需要改名,只保留文件名的前20位,文件扩展名保留原jpg格式。
一.更名脚本:
rem 遍历文件夹中的所有文件
for %%f in (*) do (
rem 获取文件名和扩展名
set "filename=%%~nf"
set "extension=%%~xf"
rem 获取新的文件名(前10位)
set "newname=!filename:~0,10!%%extension%%"
rem 重命名文件
ren "%%f" "!newname!"
)
endlocal
二.执行结果失败
但是执行修改修改不成功:
1.文件排除:开始使用 for %%f in (*) ,结果把所有非jpg格式的都修改掉了,改成 for %%f in (*.jpg)
2.扩展名获取不到:开始用%%~xa 和 %%~na都无法获取,后来使用 set "extension=%%~xf"才搞定。两者区别:
%%~xa:用于获取变量 %%a 的文件扩展名。这里的 x 表示扩展名,例如如果 %%a 是 file.txt,那么 %%~xa 将返回 .txt。
%%~na %%~xf:这个组合则是分开获取文件的名称和扩展名。
%%~na:获取变量 %%a 的文件名(不包括扩展名)。
%%~xf:获取变量 %%a 的扩展名(包括点)
三.成功运行的脚本:
rem 遍历文件夹中的所有文件
for %%f in (*.jpg) do (
rem 获取文件名和扩展名
set "filename=%%~nf"
set "extension=%%~xf"
rem 获取新的文件名(前10位)
set "newname=!filename:~0,20!!extension!"
rem 重命名文件
ren "%%f" "!newname!"
)
endlocal
到此这篇批处理 重命名(批处理 重命名文件夹)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rgzn-zryycl/72319.html