梦中情萱 2023-02-17 15:57 采纳率: 60.5%
浏览 117
已结题

批处理如何批量截短文件名?

我的某个目录里下(当前目录)有很多文件,有些文件名太长了
由于没学过batch ,来当伸手党了,顺便学习,谢谢!

求一个脚本,在当前目录执行,将目录下所有文件名长度超过10的,取前20位重命名。

  • 写回答

12条回答 默认 最新

  • GISer Liu 2023-02-17 16:05
    关注

    可以使用批处理脚本(.bat)来批量截短文件名,具体操作如下:

    1. 打开记事本或其他文本编辑器,新建一个批处理脚本(例如:truncate_filenames.bat)。

    2. 在批处理脚本中添加以下命令:

    @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位。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(11条)

报告相同问题?

问题事件

  • 系统已结题 2月27日
  • 已采纳回答 2月19日
  • 创建了问题 2月17日

悬赏问题

  • ¥15 宇视监控服务器无法登录
  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥15 DruidDataSource一直closing
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据