由于美术那边在做动画的时候有这个需求所以用lua实现了一个简单的批量文件重命名,不多说了直接贴代码。。。
--排序规则:先删除文件中不为数字的字符,然后文件按数字大小排序生成
-----------------------------------------------------
------------------------配置-------------------------
-----------------------------------------------------
--文件类型(后缀)
local SUFFIX = ".png"
--文件固定前缀
local PREFIX = "0001_"
--文件长度和起始值,比如000123
local LEN_AND_STAR = "0001"
-----------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
--输出文件长度
local FILE_NAME_FORMAT = "%0" .. string.len(LEN_AND_STAR) .."d" .. SUFFIX
--文件名起始大小
--local COUNT = tonumber(LEN_AND_STAR)
--获取包含全部文件的字符串
local getinfo = io.popen("dir /b *" .. SUFFIX)
local all = getinfo:read('*all')
local files = {}
for w in string.gmatch(all , '^\n]+') do
table.insert(files,string.sub(w,1,-(string.len(SUFFIX)+1)))
end
print("读取所有" .. SUFFIX .. "类型文件")
for i = 1 , #files do
print(files*)
end
print("去除文件名中非数字字符,并重命名文件")
for i = 1 , #files do
local oldName = files* .. ""
files* = string.gsub(files*, '^0-9]', "")
print(oldName .. SUFFIX .. " ---> " .. files* .. SUFFIX)
os.rename(oldName .. SUFFIX,files* .. SUFFIX)
end
print("排序")
table.sort(files,function(a,b)
return tonumber(a) " .. string.format(PREFIX .. FILE_NAME_FORMAT ,count))
count = count + 1
end
print("DONE!")
```
用法是想把它拷到你要操作的文件的目录下然后用命令行dofile或者是用luaEditor打开执行,
本来想用windows批处理实现的,但是那东西我认识它,它不认识我啊:6: ,所以哪位大神
如果有批处理实现的,真心希望能学习一下。*********
