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

如何批量将文件按序列重命名并保留供应商前缀?

批量重命名CSV文件:保留供应商前缀并按序列编号

以下提供两种符合需求的批处理方案,可根据实际需要选择:

方案1:每个供应商独立编号

同一供应商前缀的文件从1开始独立递增编号(如vendorA050123.csv→vendorA1.csv,vendorA060123.csv→vendorA2.csv;vendorB050123.csv→vendorB1.csv):

@echo off
setlocal ENABLEDELAYEDEXPANSION

:: 遍历当前目录下所有CSV文件
for %%f in (*.csv) do (
    :: 提取文件名中数字前的供应商前缀(如从vendorA050123中提取vendorA)
    for /f "delims=0123456789" %%p in ("%%~nf") do set "prefix=%%p"
    
    :: 初始化当前前缀的计数器(首次处理时设为1)
    if not defined count_!prefix! set "count_!prefix!=1"
    
    :: 执行重命名:前缀 + 计数器 + .csv
    ren "%%f" "!prefix!!count_!prefix!.csv"
    
    :: 计数器自增,为下一个同前缀文件准备
    set /a count_!prefix! += 1
)

echo 重命名完成!
endlocal

方案2:全局统一编号

所有CSV文件按遍历顺序连续编号,保留各自供应商前缀(如第一个文件vendorA050123.csv→vendorA1.csv,第二个vendorB050123.csv→vendorB2.csv,第三个vendorA060123.csv→vendorA3.csv):

@echo off
setlocal ENABLEDELAYEDEXPANSION
set "fileNum=1"

:: 遍历当前目录下所有CSV文件
for %%f in (*.csv) do (
    :: 提取文件名中数字前的供应商前缀
    for /f "delims=0123456789" %%p in ("%%~nf") do set "prefix=%%p"
    
    :: 执行重命名:前缀 + 全局编号 + .csv
    ren "%%f" "!prefix!!fileNum!.csv"
    
    :: 全局计数器自增
    set /a fileNum += 1
)

echo 重命名完成!
endlocal

原代码问题说明

  • 第一段代码:硬编码了VendorA前缀,且所有同供应商文件都被重命名为同一个VendorA1.csv,会导致文件覆盖,无法实现序列编号。
  • 第二段代码:仅实现了全局序列编号,但未提取并保留供应商前缀,不符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 08:12:24