我有一组这样命名的文件(word可以是任何单词或数字):
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后面。
B2342.pdf
B-2342.pdf
C43.pdf
E2AD342.pdf一行代码会很好,但它可以更多,因为它将在一个.bat文件中。主要的关注点是健壮。
发布于 2011-02-03 07:31:30
如果还不算太晚,你会尝试我的这个小批处理脚本吗?它处理当前目录中的所有.pdf文件。如果名称没有'Floor‘部分,脚本就会跳过该文件。
:@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。它是设计出来的。我只想让你先确认一下是否一切顺利。不过,我已经测试过了,这个脚本似乎没有任何问题。
只有一件事。您的一个示例名称包含冒号字符,这在文件名中是非法的。在测试过程中,我已经将其替换为“#”。
https://stackoverflow.com/questions/4856226
复制相似问题