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

Windows系统下如何批量按文件夹内首个.3ds文件名重命名文件夹?

Windows批量将文件夹重命名为内部首个.3ds文件的名称

优先推荐使用PowerShell,它对特殊字符(空格、中文、特殊符号)的兼容性更好,逻辑更清晰,出错概率低。批处理仅适合文件名无特殊字符的简单场景,局限性较大。

PowerShell 实现方法

  1. 打开PowerShell,切换到存放目标文件夹的根目录(例如:cd D:\3DS_Folders)
  2. 执行以下脚本:
Get-ChildItem -Directory | ForEach-Object {
    # 获取当前文件夹内的第一个.3ds文件
    $targetFile = Get-ChildItem -Path $_.FullName -Filter "*.3ds" | Select-Object -First 1
    if ($targetFile) {
        # 提取不带扩展名的文件名
        $newFolderName = [System.IO.Path]::GetFileNameWithoutExtension($targetFile.Name)
        # 避免重复重命名
        if ($newFolderName -ne $_.Name) {
            Rename-Item -Path $_.FullName -NewName $newFolderName -ErrorAction SilentlyContinue
            Write-Host "已完成:$($_.Name) → $newFolderName"
        }
    } else {
        Write-Host "警告:文件夹 $($_.Name) 中未找到.3ds文件"
    }
}

脚本说明:

  • 遍历根目录下所有子文件夹
  • 对每个文件夹,查找第一个.3ds文件
  • 提取该文件的无扩展名名称作为新文件夹名
  • 跳过名称已匹配的文件夹,避免无效操作
  • 未找到.3ds文件的文件夹会给出提示

批处理 实现方法(仅兼容简单场景)

如果你的文件夹和.3ds文件名都是纯数字/英文、无空格或特殊符号,可以用批处理:

  1. 在目标根目录新建文本文件,粘贴以下代码后保存为rename_folders.bat
@echo off
setlocal enabledelayedexpansion

:: 遍历所有子文件夹
for /d %%d in (*) do (
    cd "%%d"
    :: 查找当前文件夹内第一个.3ds文件
    for %%f in (*.3ds) do (
        set "newName=%%~nf"
        cd ..
        :: 仅当名称不同时执行重命名
        if not "!newName!"=="%%~nd" (
            ren "%%d" "!newName!"
            echo 已重命名:%%d → !newName!
        )
        :: 跳出内层循环,确保只取第一个.3ds文件
        goto next_folder
    )
    echo 警告:文件夹 %%d 中无.3ds文件
    :next_folder
    cd ..
)

endlocal
pause

注意:批处理对包含空格、中文、特殊符号的文件名/文件夹名支持不佳,容易出现重命名失败或逻辑错误,因此仅作备选。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 08:45:48