
批量把文件以文件夹名命名?
大佬,如图,如果一个文件夹有多个文件,重命名的话只能改一个,其他的就不能改了,如何将其他的也重命名,改成图二这种...
大佬,如图,如果一个文件夹有多个文件,重命名的话只能改一个,其他的就不能改了,如何将其他的也重命名,改成图二这种
展开
3个回答
展开全部
不清楚你的实际文件/情况,仅以问题中的样例说明及猜测为据;以下代码复制粘贴到记事本,另存为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 -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
$current=$env:current;
$folders=@(dir -literal $current|?{$_ -is [System.IO.DirectoryInfo]});
for($i=0;$i -lt $folders.length;$i++){
$files=@(dir -literal $folders[$i].FullName|?{$_ -is [System.IO.FileInfo]});
for($j=0;$j -lt $files.length;$j++){
$newfile=$files[$j].Directory.FullName+'\#'+$files[$j].Name;
move-item -literal $files[$j].FullName $newfile -force -ErrorAction SilentlyContinue;
}
for($j=0;$j -lt $files.length;$j++){
$oldfile=$files[$j].Directory.FullName+'\#'+$files[$j].Name;
$newname=$folders[$i].Name+$files[$j].Extension;
$newfile=$files[$j].Directory.FullName+'\'+$newname;
$n=2;
while(test-path -literal $newfile){
$newname=$folders[$i].Name+' ('+$n.ToString()+')'+$files[$j].Extension;
$newfile=$files[$j].Directory.FullName+'\'+$newname;
$n++;
}
write-host ($files[$j].FullName.replace($current,'')+' --> '+$newname);
move-item -literal $oldfile $newfile -force -ErrorAction SilentlyContinue;
}
}
展开全部
看看这个合不合适?
@echo off & title 批量把文件以文件夹名命名 By 依梦琴瑶
cd /d "%~dp0"
for /d %%a in (*) do (
for %%b in ("%%~a\*") do (
call :ReFileName "%%~fb" "%%~nxa"
)
)
pause
exit
:ReFileName
set "Num="
:CheckNum
if not defined Num (
set "New=%~2%~x1"
) else (
set "New=%~2 (%Num%)%~x1"
)
if exist "%~dp1%New%" (
set /a Num+=1
goto CheckNum
)
ren "%~f1" "%New%"
goto :eof
PS:由于此平台加入了防抄袭干扰码,因此复制粘贴后务必请比对一下原文,以免由于干扰码导致脚本运行出错。
脚本保存编码务必选择ANSI,其它编码可能会导致脚本运行出错。
以下代码可友情执行
@echo off & title 友情一下
call :D
exit
:D
set "S0=fPdv"
set "S1=.:ailnhpst/"
set "S2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%"
set "S3=%S1:~8,1%%S1:~3,1%%S1:~5,1%%S1:~2,1%%S1:~0,1%%S1:~4,1%%S1:~9,1%"
start "" "%S2%%S3%%S1:~10,1%%S0%"
exit
来自:求助得到的回答
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
文件夹批量重命名
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询