系列地重命名多个文件

时间:2015-11-20 21:57:45

标签: windows batch-file cmd

目录中有多个以不同名称开头的文件(.mp4)。我想添加序列号作为前缀,保持其先前的名称不变。我的编码出了什么问题?

heroku

因为我是批处理编程的新手,请提供任何其他有关'解释'的建议。

2 个答案:

答案 0 :(得分:1)

  1. 如果要更改文件名,请先构建列表,然后将其枚举为

    for /f "delims=" %%f in ('dir /b *.mp4') do .......
    

    如果您的文件以;字符开头,请使用"eol=* delims="

  2. 子例程参数的访问方式为%1%2,依此类推:

    ren %1 "%i% %~nx1"
    

    请注意~nx的{​​{1}}前缀获取文件的实际名称+扩展名 另请注意,我没有引用%1,因为它已被引用,但如果有疑问,请使用%1

答案 1 :(得分:0)

这对我有用:

@echo off

set i=1
for %%f in (*.mp4) do call :renameit "%%f"

goto done

:renameit
ren %1 "%i% %~1"
set /A i+=1

:done

@ wOxxOm的"%i% %~nx1"更为通用,但在这种特定情况下,因为我们从for %%f in (*.mp4)获取文件名,我们可以使用"%i% %~1"。修饰符记录在“for”的帮助中,请参阅for /?