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

批处理脚本求助:提取文件夹名称分段并重构目录层级

批处理脚本求助:提取文件夹名称分段并重构目录层级

嘿,各位懂批处理的大佬们能不能帮我解决这个问题?

我手上有一堆音乐文件夹,命名格式都是「Taylor Swift - 1989」这样的,每个文件夹里只有音乐文件和封面图。我需要一个批处理脚本实现以下操作:

  • 提取文件夹名称里「-」分隔的第一部分(比如「Taylor Swift」),用这个名称创建一个新的父文件夹
  • 将原来的文件夹移动到这个新父文件夹中,同时把原文件夹重命名为「-」分隔的第二部分(比如「1989」)

举个具体的例子:
原本的文件夹叫「taylor swift - 1989」,处理后会生成一个名为「taylor swift」的父文件夹,里面包含一个重命名为「1989」的子文件夹,所有音乐文件都保留在这个「1989」子文件夹里。

我自己试着写了一个脚本,但始终搞不定名称和文件夹的转换逻辑——移动的操作似乎没问题,但名称的拆分和重命名部分不对。下面是我写的脚本:

@echo off

cd /d "%~dp0"

setlocal enabledelayedexpansion

for /d %%i in ("* - *") do 2>nul (

echo\ & set "_Folder=%%~i"

echo\Folder found: ...\!_Folder:*\=!

cd /d "%~dp0!_Folder:*- =!\." ) && 2>nul (

echo\Folder "!_Folder:*- =!" exists... & cd.. ) || 2>nul (

echo\Folder: ...\!_Folder:*- =! does not exist, creating...

mkdir "%~dp0!_Folder:*- =!" & echo\Moving file ..\!_Folder:*- =! to folder !_Folder:*- =!

move "%%~fi" "%CD%\!_Folder:*- =!" && echo\Moving file "%%~nxi" to folder "..\!_Folder:*- =!"..

)

)

echo\Finished & %__APPDIR__%timeout.exe -t 60 & endlocal && goto=:EOF

求各位帮忙看看哪里出问题了,怎么调整才能实现我想要的效果?

备注:内容来源于stack exchange,提问作者Shane Cusack

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 03:19:31