代码之家  ›  专栏  ›  技术社区  ›  Maldred

PowerShell/Batch可从文件夹名称中删除结束文本

  •  -1
  • Maldred  · 技术社区  · 6 年前

    我安装了新的谷歌硬盘的软件“备份和同步”,现在所有的一切突然添加了文字 (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 回复  |  直到 6 年前
        1
  •  1
  •   Stephan    6 年前

    使用子字符串替换(请参见 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