如何穿透多个文件夹批量修改文件后缀名?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何穿透多个文件夹批量修改文件后缀名?相关的知识,希望对你有一定的参考价值。
如何穿透多个文件夹批量修改文件后缀名?也就是不打开文件夹,直接修改。re批处理命令不知道怎么穿透文件夹。
不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为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 "self=%~f0"
powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
$relation=@"
.png612904f4-->.png
.xls.zip-->.xls
"@;
$change=New-Object -TypeName System.Collections.ArrayList;
$arr=$relation.trim("`r`n") -split '[\\r\\n]+';
for($i=0;$i -lt $arr.length;$i++)
$brr=$arr[$i] -split '-->';
$reg=[regex]::replace($brr[0], '[\\+\\.\\^\\$\\\\\\[\\]\\(\\)]',
param($m);
return '\\'+$m.groups[0].value;
);
$reg=$reg.replace('?','.').replace('*','.*')+'$';
$crr=@($reg, $brr[1])
[void]$change.add($crr);
$self=get-item -literal $env:self;
$current=$self.Directory.FullName;
$files=@(dir -literal $current -recurse|?($self.Name -ne $_.Name) -and ($_ -is [System.IO.FileInfo]));
for($i=0;$i -lt $files.length;$i++)
for($j=0;$j -lt $change.count;$j++)
if($files[$i].Name -match $change[$j][0])
$newname=$files[$i].Name -replace $change[$j][0],$change[$j][1];
$newfile=$files[$i].Directory.FullName+'\\'+$newname;
write-host ($files[$i].FullName+' --> '+$newname);
#move-item -literal $files[$i].FullName $newfile -ErrorAction SilentlyContinue;
break;
参考技术A for /f "delims=" %%a in ('dir /a-d/s/b *.png612904f4') do ren "%%~a" "%%~na.png"追问
请问是直接在dos中输入上述命令吗
追答如果在cmd命令行中直接输入,那么请把%%(双百分号)改成%(单百分号),如果不改,那么把命令写到脚本文件后并保存,之后执行脚本。
本回答被提问者采纳windows批量修改文件后缀名
有时候需要批量修改一些文件的后缀名,下面介绍批量修改的方法。
1.在文件夹内新建一个.txt文本文档。
2.在文本文档内写:ren * *.mp3 (意思是把没有后缀名的全部改成.mp3的格式,
同理ren *.gif *.jpg则是把gif改成jpg,注意中间的空格是必须的)。
3.把.txt文件后缀改成.bat,双击执行。成功拉。
以上是关于如何穿透多个文件夹批量修改文件后缀名?的主要内容,如果未能解决你的问题,请参考以下文章
如何批量修改文件后缀名?cmd命令 ren *.gif *.jpg