<p>需求:一个文件夹里面的长文件名需要改名,只保留文件名的前20位,文件扩展名保留原jpg格式。</p>
讯享网
一.更名脚本:
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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/190829.html