我的某个目录里下(当前目录)有很多文件,有些文件名太长了
由于没学过batch ,来当伸手党了,顺便学习,谢谢!
求一个脚本,在当前目录执行,将目录下所有文件名长度超过10的,取前20位重命名。
我的某个目录里下(当前目录)有很多文件,有些文件名太长了
由于没学过batch ,来当伸手党了,顺便学习,谢谢!
求一个脚本,在当前目录执行,将目录下所有文件名长度超过10的,取前20位重命名。
可以使用批处理脚本(.bat)来批量截短文件名,具体操作如下:
打开记事本或其他文本编辑器,新建一个批处理脚本(例如:truncate_filenames.bat)。
在批处理脚本中添加以下命令:
@echo off
setlocal enabledelayedexpansion
for %%f in (*) do (
set "filename=%%~nf"
set "extension=%%~xf"
if "!filename!" neq "!filename:~0,10!" (
set "newname=!filename:~0,20!!extension!"
ren "%%f" "!newname!"
)
)
3.保存批处理脚本,并将其放置到需要批量截短文件名的目录下。
4.双击运行批处理脚本,它将在当前目录下批量截短文件名。脚本会将当前目录下所有文件名长度超过10的文件名截短为前20位,并将原始文件名重命名为新文件名。
需要注意的是,该脚本仅适用于当前目录下的文件,如果您需要批量截短子目录下的文件名,可以在脚本中添加递归遍历子目录的命令。例如:
@echo off
setlocal enabledelayedexpansion
for /r %%f in (*) do (
set "filename=%%~nf"
set "extension=%%~xf"
if "!filename!" neq "!filename:~0,10!" (
set "newname=!filename:~0,20!!extension!"
ren "%%f" "!newname!"
)
)
这样,脚本将递归遍历当前目录下的所有子目录,并将文件名长度超过10的文件名截短为前20位。