目录中有多个以不同名称开头的文件(.mp4)。我想添加序列号作为前缀,保持其先前的名称不变。我的编码出了什么问题?
heroku
因为我是批处理编程的新手,请提供任何其他有关'解释'的建议。
答案 0 :(得分:1)
如果要更改文件名,请先构建列表,然后将其枚举为
for /f "delims=" %%f in ('dir /b *.mp4') do .......
如果您的文件以;
字符开头,请使用"eol=* delims="
子例程参数的访问方式为%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 /?
。