查找并重命名文件夹 Windows Batch

查找并重命名文件夹 Windows Batch

我有多个包含艺术家姓名的目录,其中可以有一个或多个包含专辑名称的目录。示例

Michael Jackson\Invincible (Album)
Michael Jackson\Thriller (Album)
Luciano Pavarotti\'O sole mio (Single)
Queen\Bohemian Rhapsody (Single)

我想重命名所有带有“(专辑)”的文件夹并保留专辑名称。

前面的例子如下

Michael Jackson\Invincible
Michael Jackson\Thriller
Luciano Pavarotti\'O sole mio (Single)
Queen\Bohemian Rhapsody (Single)

我有这个代码,但我不知道如何搜索包含“(专辑)”的文件夹并删除它。

@echo off
setlocal disableDelayedExpansion

for /d %%A in (*) do (
    set "folder=%%A"
    setlocal enableDelayedExpansion

    REM rename folder

    endlocal
)

说实话我从来没有做过这么复杂的事情。如果有人能帮助我,我将不胜感激。

答案1

“搜索”包含“(专辑)”的文件夹的命令是:

dir *(Album) /s /b /ad

请参阅 dir /? 了解更多信息。这可能是 for 循环中使用的列表。

刚刚尝试过,这应该可行:

@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%f in ('dir /s /b /ad "*(Album)"') do (
    set "filename=%%~nf"
    ren "%%f" "!filename:~0,-7!"
)

相关内容