首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.Batch重命名多个文件

.Batch重命名多个文件
EN

Stack Overflow用户
提问于 2017-08-25 17:54:50
回答 1查看 255关注 0票数 1

大家好,我用.batch写了这段代码:

代码语言:javascript
复制
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=C:\Users\leandro.batista\Desktop\reni"
FOR /f "delims=" %%a IN ('dir /b /a-d "%sourcedir%\*.pdf" ') DO (
 SET "csvname=%%~na"
 IF NOT "!csvname:*_=!"=="!csvname!" (
  CALL :finddate

    REN *.pdf !csvname!.pdf 
    PAUSE
)
)


GOTO :EOF
:finddate
IF /i "%csvname:~-13%"=="" SET "csvname=%csvname:~0,-13%" 
IF "%csvname:*_=%"=="%csvname%" SET "csvname=%csvname:~0,13%"&GOTO :EOF  
SET "csvname=%csvname:*_=%"
GOTO finddate

所以,现在我要解释一下,我有:finddate,它提取了文件名的一部分,然后我在for循环中使用它来重命名文件。

我正在做的是重命名同一文件夹中的多个文件,但我遇到了一个问题,它没有重命名多个文件,它只是重命名了一个文件,然后离开了其他文件,并说有一个同名的文件已经存在,所以我认为我的循环没有像我希望的那样工作。

文件名示例如下:

代码语言:javascript
复制
AAA_BBB_CCC_DDD_01_M73N_(REC9ago2017) BLA BLA BLA BLA BLA BLA 1008.pdf

我需要一些帮助来解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2017-08-25 18:11:57

多亏了@LotPings,我解决了这个问题。

我只是在REN行中这样做:

代码语言:javascript
复制
REN "%%a" "!csvname!.pdf"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45878862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档