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

如何将文件移动至与文件名对应编号匹配的指定文件夹?

批量移动报表文件到对应编号文件夹的解决方案

刚好遇到过类似的批量文件整理需求,给你几个不同平台的实用方案,轻松搞定这个重复劳动:

Windows 命令提示符(CMD)

打开命令提示符,切换到这些文件所在的目录,运行下面的命令就能自动完成移动:

for /f "tokens=2 delims=_." %%i in ('dir /b AR_*.pdf BS_*.pdf') do (
    if not exist "%%i\" mkdir "%%i\"  # 如果文件夹不存在就自动创建
    move "AR_%%i.pdf" "%%i\"
    move "BS_%%i.pdf" "%%i\"
)

这段命令会从PDF文件名里提取出中间的编号(比如从AR_95000.pdf里拿到95000),然后把对应编号的AR和BS报表移到同名文件夹里,还会自动创建不存在的目标文件夹。

Windows PowerShell

如果更习惯用PowerShell,这段代码逻辑更清晰:

Get-ChildItem -Filter "*.pdf" | 
    Where-Object { $_.Name -match "^(AR|BS)_(\d+)\.pdf$" } | 
    ForEach-Object {
        $targetFolder = $matches[2]
        # 自动创建目标文件夹(如果不存在)
        if (-not (Test-Path $targetFolder)) {
            New-Item -ItemType Directory -Path $targetFolder | Out-Null
        }
        Move-Item -Path $_.FullName -Destination ".\$targetFolder\"
    }

它会先筛选出符合AR_xxxx.pdf或BS_xxxx.pdf格式的文件,用正则表达式提取编号,再把文件移动到对应文件夹。

Linux/macOS(Bash)

在终端里切换到文件所在目录,执行下面的脚本:

for file in AR_*.pdf BS_*.pdf; do
    # 从文件名中提取编号部分
    num=${file#*_}
    num=${num%.pdf}
    # 自动创建目标文件夹(如果不存在)
    mkdir -p "$num/"
    mv "$file" "$num/"
done

${file#*_}会去掉文件名开头到第一个下划线的内容,${num%.pdf}则去掉结尾的.pdf,得到目标文件夹的编号,然后移动文件过去,mkdir -p确保文件夹不存在时自动创建。

注意事项

  • 确保你运行命令/脚本的目录就是这些文件和文件夹所在的目录,不然可能找不到文件或路径错误。
  • 如果目标文件夹已经存在,这些命令不会覆盖里面的文件,只会移动指定的PDF过去。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 21:12:40