标题: [文件操作] 批处理怎样按文件夹内图片视频数量修改文件名? [打印本页]
作者: pichuli23 时间: 2020-2-25 21:44 标题: 批处理怎样按文件夹内图片视频数量修改文件名?
怎么批量统计出文件夹下的 图片数量 视频数量 和文件夹大小,并自动附加到文件夹名之后啊???就像“aaa10p12v 100m”这样子
作者: Batcher 时间: 2020-2-26 00:09
回复 1# pichuli23
图片和视频分别是哪几种文件扩展名?
作者: zaqmlp 时间: 2020-2-26 17:21
本帖最后由 zaqmlp 于 2021-12-24 16:09 编辑
- <# :
- cls&echo off
- set "rootpath=%~dp0"
- if "%rootpath:~-1%" equ "\" (set "rootpath=%rootpath:~,-1%")
- cd /d "%rootpath%"
- powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default))) -Args '%rootpath%'"
- pause
- exit
- #>
- $path=$args[0];
- $pext=@('.jpg', '.jpeg', '.png', '.bmp', '.gif');
- $vext=@('.mp4', '.avi', '.rmvb', '.mov', '.wmv');
-
- function formatsize($z){
- $t='';
- if($z -ge 1073741824){
- $t=($z/1073741824).toString('0.00GB');
- }else{
- if($z -ge 1048576){
- $t=($z/1048576).toString('0.00MB');
- }else{
- if($z -ge 1024){
- $t=($z/1024).toString('0.00KB');
- }else{
- $t=($z).toString()+'B';
- };
- };
- };
- return $t;
- };
-
- $folders=@(dir -liter $path -recurse|?{$_ -is [System.IO.DirectoryInfo]}|sort {$_.FullName.length} -des);
- for($i=0;$i -lt $folders.length;$i++){
- $files=@(dir -liter $folders[$i].FullName -recurse|?{$_ -is [System.IO.FileInfo]});
- $p=0;$v=0;$ps=0;$vs=0;$s=0;
- for($j=0;$j -lt $files.length;$j++){
- if($pext -contains $files[$j].Extension){
- $p++;
- $ps+=$files[$j].length;
- }else{
- if($vext -contains $files[$j].Extension){
- $v++;
- $vs+=$files[$j].length;
- };
- };
- };
- $s=$ps+$vs;
- $oldname=$folders[$i].Name;
- $newname=($oldname -replace '\[\d+p\d+v \d+(\.\d+)?(G|M|K)?B\]$','')+'['+$p+'p'+$v+'v '+(formatsize $s)+']';
- if($newname -ne $oldname){
- write-host ($folders[$i].FullName+' --> '+$newname);
- mv -liter $folders[$i].FullName ($folders[$i].Parent.FullName+'\'+$newname);
- };
- };
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |