Batch file 使用交替alpha后缀进行批重命名
我希望通过添加一个字母字符的后缀来批量重命名大量文件,但仅限于特定范围。例如:126.pdf文件应更名为126A.pdf,127.pdf文件应更名为127B.pdf,128.pdf文件应更名为128A.pdf,129.pdf文件应更名为129B.pdf,等等。任何能够做到这一点的现有软件都值得赞赏。Batch file 使用交替alpha后缀进行批重命名,batch-file,rename,Batch File,Rename,我希望通过添加一个字母字符的后缀来批量重命名大量文件,但仅限于特定范围。例如:126.pdf文件应更名为126A.pdf,127.pdf文件应更名为127B.pdf,128.pdf文件应更名为128A.pdf,129.pdf文件应更名为129B.pdf,等等。任何能够做到这一点的现有软件都值得赞赏。 谢谢 您可以使用FOR循环来检查每个文件名 setlocal EnableDelayedExpansion for %%A in (*.pdf) DO ( echo Filename=%%A
谢谢 您可以使用FOR循环来检查每个文件名
setlocal EnableDelayedExpansion
for %%A in (*.pdf) DO (
echo Filename=%%A
set name=%%~nA
set "prefix="
if !name! == 123 set prefix=A
if !name! == 999 set prefix=B
echo rename "%%A" to "!name!!prefix!.pdf"
ren "%%A" "!name!!prefix!.pdf"
)
之前的计划基于您请求中给出的示例。如果您以不同的、更精确的方式定义重命名规则,程序可能会完全不同 您可以尝试以下方法:
@ECHO OFF
SETLOCAL EnableDelayedExpansion
SET suffixes=AB
FOR %%I IN (*.pdf) DO (
RENAME "%%I" "%%~nI!suffixes:~0,1!.*"
SET suffixes=!suffixes:~1!!suffixes:~0,1!
)
后缀
变量设置为所有可能后缀的“数组”,用于重命名
迭代文件时,将选择数组中的第一个后缀以形成新名称。然后在数组中交换后缀,以便在下一次迭代中另一个后缀成为第一个后缀
此解决方案适用于任意数量的后缀。您没有解释用于决定选择字符的规则。顺便说一句,这是一个用于编程问题的平台,而不是用于软件推荐。@jeb:从我对这个问题的理解来看,这个想法是交替地将一组固定的后缀应用于一个已排序的文件列表。
@ECHO OFF
SETLOCAL EnableDelayedExpansion
SET suffixes=AB
FOR %%I IN (*.pdf) DO (
RENAME "%%I" "%%~nI!suffixes:~0,1!.*"
SET suffixes=!suffixes:~1!!suffixes:~0,1!
)