You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批量删除文件夹内文件名指定位置后的字符

批量重命名文件:保留指定长度前缀

以下是不同操作系统下,批量截取文件名指定长度前缀、删除后续字符的实用方案:


Windows 环境

方法1:命令提示符(CMD)

创建批处理文件(比如rename.bat),放入目标文件夹后运行,修改数字即可切换保留长度:

@echo off
setlocal enabledelayedexpansion
:: 替换数字为你需要保留的字符长度(如15/17)
set "keep_length=15"

for %%f in (*.*) do (
    set "filename=%%~nf"
    set "newname=!filename:~0,%keep_length%!"
    ren "%%f" "!newname!%%~xf"
)

方法2:PowerShell

打开PowerShell进入目标文件夹,执行以下命令(修改数字调整保留长度):

# 保留前15个字符,改成17即可对应需求2
Get-ChildItem | Rename-Item -NewName { $_.BaseName.Substring(0,15) + $_.Extension }

Linux/macOS 环境

方法1:Bash 循环脚本

在终端进入目标文件夹,执行以下命令(替换数字调整保留长度):

# 替换数字为需要保留的字符长度
keep_length=15

for file in *; do
    if [ -f "$file" ]; then
        # 拆分文件名和后缀
        base="${file%.*}"
        ext="${file##*.}"
        # 截取前缀并拼接后缀
        new_base="${base:0:$keep_length}"
        mv "$file" "${new_base}.${ext}"
    fi
done

方法2:Perl 版 rename(Linux 常用)

如果系统自带Perl版rename(Debian/Ubuntu等默认),可直接用:

# 保留前15个字符,修改数字即可切换长度
rename 'my ($base, $ext) = split /\./, $_, 2; $base = substr($base, 0, 15); $_ = "$base.$ext"' *

注意事项

  1. 操作前务必备份文件,避免重名或误操作导致数据丢失
  2. 如果存在截取后重名的文件,脚本会报错,需手动处理冲突
  3. 确保目标文件夹内只有需要重命名的文件,避免误改系统文件

内容的提问来源于stack exchange,提问作者Pandu C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 13:46:09