求一个批量重命名的
bat吧
全部回复
仅看楼主
level 1
依次将该文件夹下所有子文件夹内第3个(以后自己改成第4个、第5个…)图片重命名为2022.4.25
谢谢大神万分感谢!!
2022年04月25日 06点04分 1
level 1
手动艾特大佬@qop_dob,谢谢大佬帮忙了[真棒]
2022年04月25日 06点04分 2
level 9
不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的多个文件夹放一起双击运行
<# :
cls&echo off&cd /d "%~dp0"
rem 将当前文件夹下多个子文件夹里的第3张图片文件以当天日期重命名
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "current=%cd%"
powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
$num=3;
$ext=@('.jpg','.jpeg','.bmp','.png','.webp');
$current=$env:current;
$codes=@'
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
public static class ExpDir
{
[DllImport("Shlwapi.dll", CharSet=CharSet.Unicode)]
public static extern int StrCmpLogicalW(string p1, string p2);
public static string[] Sort(string[] f)
{
Array.Sort(f, StrCmpLogicalW);
return f;
}
}
'@;
Add-Type -TypeDefinition $codes;
$b=[Convert]::FromBase64String("IC0tPiA=");
$c=[Text.Encoding]::Default.GetString($b);
$d=(get-date).ToString('yyyy.M.d');
$folders=@(dir -literal $current|?{$_ -is [System.IO.DirectoryInfo]});
for($i=0;$i -lt $folders.length;$i++){
write-host $folders[$i].FullName -ForegroundColor yellow;
$files=@(dir -literal $folders[$i].FullName|?{($ext -contains $_.Extension) -and ($_ -is [System.IO.FileInfo])}|%{$_.Name});
if($files.length -ge 1){
$arr=[ExpDir]::Sort($files);
if($arr[$num-1] -ne $null){
$e='';
$m=[regex]::match($arr[$num-1], '\.[^\.]+?$');
if($m.Success){$e=$m.groups[0].value;}
$arr[$num-1]+$c+$d+$e;
}
}
}
2022年04月25日 08点04分 3
1