PowerShell /批处理从文件夹名称中删除结束文本

时间:2018-08-31 14:45:23

标签: powershell batch-file

我安装了新版Google云端硬盘的“备份和同步”软件,现在突然间,它在我所有音乐文件夹的末尾添加了文本(1)

遍历如此多的艺术家并手动编辑它们是很痛苦的……我有什么办法可以使用批处理文件来遍历每个文件并删除那个片断字符串?

我已经进行了大量搜索,但似乎找不到与从文件夹名称中删除文本有关的任何详细信息。我搜索的所有内容都是关于从文件名中删除文本。

示例目录:

Awesome Artist (1)
Another Cool Artist (1)
Artist Is Fun (1)
WOW COOL Artist (1)
Ok No More Artists (1)

最终目标

Awesome Artist
Another Cool Artist
Artist Is Fun
WOW COOL Artist
Ok No More Artists

1 个答案:

答案 0 :(得分:1)

使用子字符串替换(请参见set /?)删除不需要的字符串(1)。放一个循环(循环遍历所有文件夹(/d),结尾为<space>(1)

@echo off
SETLOCAL enabledelayedexpansion
REM just to generate some folders to work with:
for %%a in (
  "Awesome Artist (1)"
  "Another Cool Artist (1)"
  "Artist Is Fun (1)"
  "WOW COOL Artist (1)"
  "Ok No More Artists (1)"
) do md "%%~a"
dir /ad

REM rename the folders:
for /d %%a in ("*(1)") do (
  set folder=%%a
  ren "%%a" "!folder: (1)=!"
)
dir /ad
pause

注意:如果已经存在一个具有相同名称的文件夹,ren命令将失败,从而防止覆盖。