求助,批量重命名文件名.

jintoys 2013-06-12 06:17:00
加精
高手帮忙!!!!
我有很多图片要重新命名,因为原来的位数不够,要增加到6位,我的文件名命名的规则是前面两个英文字母后面是4位和5位的数字,格式(AA0001.jpg,AA10001.jgp).现在要改为:(AA000001.Jpg,AA010001.Jpg).
规则就是如果文件名是4数字的在英文字母后面加2个"0",如果是5位在英文字母后面加一个"0",后面的保持不变.
前面的英文字母是不一样的.规则:AA,AB,AC.......ZX,AY,ZZ.
这样的规则bat要怎么表达,请大家帮一下.
...全文
4978 58 打赏 收藏 转发到动态 举报
写回复
用AI写文章
58 条回复
切换为时间正序
请发表友善的回复…
发表回复
柯博铭 2013-10-26
  • 打赏
  • 举报
回复
guanzhuxia
wbuzhou 2013-10-25
  • 打赏
  • 举报
回复
各有所长,,呵呵
289623764 2013-10-24
  • 打赏
  • 举报
回复
高手啊!膜拜
xyh44934776 2013-10-23
  • 打赏
  • 举报
回复
发现很多大神,,以后好好学习
艺丰广告 2013-10-23
  • 打赏
  • 举报
回复
param ( [string] $picdirectory="d:\temp\", [string] $outputlog="d:\log\outlog.log" ) $filenames=Get-ChildItem -Path $picdirectory -Include *.jpg -Recurse foreach($filename in $filenames) { if ($filename.name.length -eq 10) { $newfilename=$filename.name.substring(0,2)+"00"+$filename.name.substring(2,8) Rename-Item -Path $filename.fullname -NewName $newfilename $Outputstring="文件"+$filename.name+"已经被修改为"+$newfilename if($?) { $outputstring|Out-File -Encoding unicode -FilePath $outputlog -Append } } if ($filename.name.length -eq 11) { $newfilename=$filename.name.substring(0,2)+"0"+$filename.name.substring(2,9) Rename-Item -Path $filename.fullname -NewName $newfilename $Outputstring="文件"+$filename.name+"已经被修改为"+$newfilename if($?) { $outputstring|Out-File -Encoding unicode -FilePath $outputlog -Append } }
Ki1381 2013-10-22
  • 打赏
  • 举报
回复
高手都用命令行。膜拜#3
lhw7791086 2013-10-22
  • 打赏
  • 举报
回复
虚拟用户 2013-10-21
  • 打赏
  • 举报
回复
好多技术活,顿时感觉自己的不足,学习了。
nettman 2013-10-21
  • 打赏
  • 举报
回复
关注下
clever101 2013-10-21
  • 打赏
  • 举报
回复
楼主,用Jscript吧,支持正则表达式,很快就可以搞定!
mutu_du 2013-10-21
  • 打赏
  • 举报
回复
有重命名的工具,下载一个
挽回 2013-10-20
  • 打赏
  • 举报
回复
宇文士 2013-10-20
  • 打赏
  • 举报
回复
感谢楼主分享,学习了 感谢楼主分享,学习了
mbugaifc 2013-10-19
  • 打赏
  • 举报
回复
雾岛心情 2013-10-19
  • 打赏
  • 举报
回复
顺便再博客中写了下工作原理和方式,各位可以了解下: http://blog.csdn.net/fogyisland2000/article/details/12845653
雾岛心情 2013-10-19
  • 打赏
  • 举报
回复
以我写的第二个为主,第一段有错误,在进行成功处理这里有句位置颠倒了下: Rename-Item -Path $filename.fullname -NewName $newfilename $Outputstring="文件"+$filename.name+"已经被修改为"+$newfilename----需要将这里提到前面,否则不管程序是否改名成功都会记录到日志 if($?) { $outputstring|Out-File -Encoding unicode -FilePath $outputlog -Append } 所以正确的顺序如下: $Outputstring="文件"+$filename.name+"已经被修改为"+$newfilename Rename-Item -Path $filename.fullname -NewName $newfilename if($?) { $outputstring|Out-File -Encoding unicode -FilePath $outputlog -Append }
u012506838 2013-10-19
  • 打赏
  • 举报
回复
路过,顺便看看
难啊大作业 2013-10-19
  • 打赏
  • 举报
回复
大神!!!!膜拜ING!!!
wdwadawdwa 2013-10-19
  • 打赏
  • 举报
回复
真的的啊6的字符串
平静的心东 2013-10-19
  • 打赏
  • 举报
回复
写了一下,执行没问题,并记录了日志: param ( [string] $picdirectory="d:\temp\", [string] $outputlog="d:\log\outlog.log" ) $filenames=Get-ChildItem -Path $picdirectory -Include *.jpg -Recurse foreach($filename in $filenames) { if ($filename.name.length -eq 10) { $newfilename=$filename.name.substring(0,2)+"00"+$filename.name.substring(2,8) Rename-Item -Path $filename.fullname -NewName $newfilename $Outputstring="文件"+$filename.name+"已经被修改为"+$newfilename if($?) { $outputstring|Out-File -Encoding unicode -FilePath $outputlog -Append } } if ($filename.name.length -eq 11) { $newfilename=$filename.name.substring(0,2)+"0"+$filename.name.substring(2,9) Rename-Item -Path $filename.fullname -NewName $newfilename $Outputstring="文件"+$filename.name+"已经被修改为"+$newfilename if($?) { $outputstring|Out-File -Encoding unicode -FilePath $outputlog -Append } } }
加载更多回复(26)

6,849

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧