标题: [文件操作] 批处理 重命名 怎样指定,几个文字组,循环命名。 [打印本页]
作者: 937501916 时间: 2019-6-1 17:54 标题: 批处理 重命名 怎样指定,几个文字组,循环命名。
目录里有1000个文件。
重命名规则按{上,右上,右,右下,下,左下,左,左上}
这8个名字循环命名。
但是每个重命名规则,可以设定文件个数。
比如:
“上”这个要命名的文件数量是5个,
“右上”这个要命名的文件数量是12个,
“右”这个要命名的文件数量是23个。
就这样{上,右上,右,右下,下,左下,左,左上}按这个顺序循环命名。
但是每个文件命名的时候,可以设定命名数量。
作者: zaqmlp 时间: 2019-6-1 18:41
本帖最后由 zaqmlp 于 2019-6-1 23:12 编辑
- @echo off
- mode con lines=3000
- set info=互助互利,支付宝扫码头像,感谢赞助
- rem 有问题,可加QQ956535081及时沟通
- title %info%
- cd /d "%~dp0"
- powershell -NoProfile -ExecutionPolicy bypass ^
- $list=@('上:3','右上:2','右:7','右下:6','下:2','左下:8','左:6','左上:5');^
- $files=@(dir^|?{($_ -is [System.IO.FileInfo]) -and ($_.Name -ne '%~nx0')});^
- $n=0;^
- $r=10001;^
- while($n -lt $files.Count){^
- for($i=0;$i -lt $list.length;$i++){^
- $arr=$list[$i].split(':');^
- if($arr[1] -gt 0){^
- for($j=1;$j -le $arr[1];$j++){^
- $m=1000;^
- $newname=$r.toString().subString(3)+'-'+$arr[0]+' ('+$m.toString().subString(1)+')'+$files[$n].Extension;^
- while(test-path -liter $newname){^
- $m++;^
- $newname=$r.toString().subString(3)+'-'+$arr[0]+' ('+$m.toString().subString(1)+')'+$files[$n].Extension;^
- };^
- write-host ($files[$n].Name+' --^> '+$newname);^
- mv -liter $files[$n].Name $newname;^
- $n++;^
- if($n -ge $files.Count){exit};^
- };^
- };^
- if($i -eq ($list.length-1)){$r++;write-host ('='*32)};^
- };^
- };
- echo;%info%
- pause
复制代码
作者: 937501916 时间: 2019-6-1 20:26
回复 2# zaqmlp
抱歉,大佬,还有个问题没表达清楚。
第一个循环{上,右上,右,右下,下,左下,左,左上},需要在前面加个数字来区分。变成{01-上,01-右上,01-右,01-右下,01-下,01-左下,01-左,01-左上}
第二个循环变成{02-上,02-右上,02-右,02-右下,02-下,02-左下,02-左,02-左上}
第三个循环变成{03-上,03-右上,03-右,03-右下,03-下,03-左下,03-左,03-左上}
.........
这样循环下去。
能改一下吗,谢谢了。
作者: zaqmlp 时间: 2019-6-1 20:35
回复 3# 937501916
没赞助没动力呀
作者: 937501916 时间: 2019-6-1 20:51
回复 4# zaqmlp
你QQ没回我,我发你支付宝了
作者: zaqmlp 时间: 2019-6-1 21:10
回复 5# 937501916
已改
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |