我有多个包含艺术家姓名的目录,其中可以有一个或多个包含专辑名称的目录。示例
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!"
)