如何使用不同的名称从CMD提示符重命名多个目录

时间:2016-01-25 13:50:09

标签: batch-file cmd

如何使用不同的名称从CMD提示符重命名多个目录,如下所示:

  

alnaddy.com-7-5-2014 - > alnaddy.com

     

cairoscene.org-7-5-2014 - > cairoscene.org

     

elshaab.org-7-5-2014 - > elshaab.org

     

goal.com-7-5-2014 - > goal.com

我有一个包含数千个目录的列表。 感谢

2 个答案:

答案 0 :(得分:0)

我同意Stephan认为这可能是不安全和/或无法解决的,因为两个文件夹只能在日期后缀上有所不同。

但如果我确信不会发生冲突,那么我会使用我的JREN.BAT regex renaming utility - 纯脚本(混合JScript /批处理),它可以在XP以后的任何Windows机器上本机运行。

假设所有文件夹都在单个父文件夹中,那么我将从父文件夹中执行以下操作。

jren "-\d\d?-\d\d?-\d{4}" "" /d

如果我想处理整个文件夹树,那么我会添加/ S选项。

答案 1 :(得分:0)

从命令提示符:

for /F "tokens=1* delims=-" %a in ('dir /AD /B') do ren "%a-%b" "%a"

如果删除日期后可能是重复的名称,则需要批处理文件来管理重复项:

@echo off
setlocal EnableDelayedExpansion

rem Define the maximum number of duplicate names (keep it low)
set "maxDups=4"

for /F "tokens=1* delims=-" %%a in ('dir /AD /B') do (
   set "newName=%%a"
   if exist "%%a" (
      for /L %%i in (%maxDups%,-1,1) do (
         if not exist "%%a (%%i)" set "newName=%%a (%%i)"
      )
   )
   ren "%%a-%%b" "!newName!"
)