批量修改指定文件夹内文件名称?
发布网友
发布时间:2022-03-26 20:04
我来回答
共2个回答
热心网友
时间:2022-03-26 21:33
不清楚你的实际文件/情况,仅以问题中的样例说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的多个文件夹放一起双击运行
<# :
cls&echo off&cd /d "%~dp0"&mode con lines=5000
rem 对多个子文件夹里的一个指定名称文件夹里的图片按照指定前缀字符+递增的数字序号的格式进行重命名
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "current=%cd%"
powershell -sta -NoProfile -ExecutionPolicy bypass "[IO.File]::ReadAllText(\"%~f0\",[Text.Encoding]::GetEncoding('GB2312'))|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
$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);
$current=get-item -liter $env:current;
$folders=@(dir -literal $current.FullName|?{$_ -is [System.IO.DirectoryInfo]});
for($i=0;$i -lt $folders.length;$i++){
$folder=$folders[$i].FullName+'\身份证';
if(test-path -literal $folder){
$files=@(dir -literal $folder|?{(@('.jpg','.jpeg','.png') -contains $_.Extension) -and ($_ -is [System.IO.FileInfo])}|%{$_.Name});
if($files.length -ge 1){
write-host $folder;
$arr=[ExpDir]::Sort($files);
for($j=0;$j -lt $files.count;$j++){
$e='';
$m=[regex]::match($files[$j], '\.[^\.]+?$');
if($m.Success){$e=$m.groups[0].value;}
$newname='QL'+($j+1).ToString().PadLeft(3, '0')+$e;
$files[$j]+$c+$newname;
}
}
}
}
来自:求助得到的回答
热心网友
时间:2022-03-26 22:51
打开现有文件名清单,全选,Ctrl+C拷贝。
2.
新建一个Excel文件,命名为“批量文件重命名.xlsx”。打开该文件,选中A2单元格,Ctrl+V复制所拷贝的文件名