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

PowerShell实现复制文件并按递增计数器重命名(保留扩展名)

当然可以实现!这在PowerShell里完全没问题,而且脚本写起来灵活度很高,刚好匹配你要的「递增计数器+保留原扩展名」的需求。下面给你具体的实现方案:

完整PowerShell脚本示例
# 1. 定义源文件:可以是单个文件、多个文件路径,或者整个文件夹下的文件
# 示例:获取指定文件夹下的所有文件,也可以写成 Get-ChildItem -Path "fileA.txt", "fileB.doc"
$sourceFiles = Get-ChildItem -Path "C:\Your\Source\Directory\*" -File

# 2. 定义目标文件夹(确保这个文件夹已经存在,或者加参数自动创建)
$destinationPath = "C:\Your\Target\Directory"
# 如果目标文件夹不存在,自动创建的话可以加这句:
# if (-not (Test-Path $destinationPath)) { New-Item -ItemType Directory -Path $destinationPath | Out-Null }

# 3. 初始化计数器,从1开始
$counter = 1

# 4. 遍历每个源文件,复制并重命名
foreach ($file in $sourceFiles) {
    # 把计数器格式化为带前导零的三位数字(比如1→001,10→010)
    $formattedCounter = $counter.ToString("D3")
    # 构造新文件名:前缀_计数器.原扩展名
    $newFileName = "file_$formattedCounter$($file.Extension)"
    # 拼接目标文件的完整路径
    $destinationFile = Join-Path -Path $destinationPath -ChildPath $newFileName
    # 执行复制操作(不想覆盖已存在文件的话,加 -NoClobber 参数)
    Copy-Item -Path $file.FullName -Destination $destinationFile
    # 计数器自增
    $counter++
}
关键细节说明
  • 保留原扩展名:通过$file.Extension自动获取源文件的扩展名(比如.txt、.doc),确保新文件名和原文件格式完全一致
  • 递增计数器格式:$counter.ToString("D3")用来生成固定位数的数字,D3表示三位,如果你需要两位就改成D2,四位改成D4,会自动补前导零
  • 灵活指定源文件:你可以直接列出具体文件,或者用文件夹路径批量处理,甚至加-Filter "*.txt"只处理特定类型的文件
自定义小技巧
  • 修改前缀:把file_改成你想要的名称,比如document_或者backup_
  • 跳过已存在文件:在Copy-Item后面加上-NoClobber,如果目标文件夹里已有同名文件就不会覆盖
  • 处理子文件夹:如果要递归处理源文件夹的子文件,给Get-ChildItem加上-Recurse参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:07:04