首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dos批处理文件重命名

Dos批处理文件重命名
EN

Stack Overflow用户
提问于 2011-02-01 05:17:41
回答 1查看 2K关注 0票数 0

我有一组这样命名的文件(word可以是任何单词或数字):

代码语言:javascript
复制
Word word-word word word Floor B2342 Word Word-word.pdf
Word word-word word Floor: B-2342 Word Word-word.pdf
Word word- Floor C43 Word Word.pdf
Word word word- Floor- E2AD342 Word Word.pdf

我想要重命名文件夹中的所有内容,使其仅包含Floor后面的组...你可以指望floor总是在文件名中,我想跟在Floor后面。

代码语言:javascript
复制
B2342.pdf
B-2342.pdf
C43.pdf
E2AD342.pdf

一行代码会很好,但它可以更多,因为它将在一个.bat文件中。主要的关注点是健壮。

EN

回答 1

Stack Overflow用户

发布于 2011-02-03 07:31:30

如果还不算太晚,你会尝试我的这个小批处理脚本吗?它处理当前目录中的所有.pdf文件。如果名称没有'Floor‘部分,脚本就会跳过该文件。

代码语言:javascript
复制
:@ECHO OFF
FOR %%a IN (*.pdf) DO CALL :RenameFile "%%a" %%~na
GOTO :EOF


:RenameFile
SET oldname=%1
SET newname=
SET floored=0

:loop
IF %2.==. GOTO :endloop
IF %floored%==1 SET newname=%2& GOTO :endloop
SET tmp=%2
IF /I %tmp:~0,5%==Floor SET floored=1
SHIFT
GOTO :loop
:endloop

IF NOT %newname%.==. COPY %oldname% %newname%.*

您可能已经注意到了令人惊讶的COPY命令而不是RENAME。它是设计出来的。我只想让你先确认一下是否一切顺利。不过,我已经测试过了,这个脚本似乎没有任何问题。

只有一件事。您的一个示例名称包含冒号字符,这在文件名中是非法的。在测试过程中,我已经将其替换为“#”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4856226

复制
相关文章

相似问题

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