如何穿透多个文件夹批量修改文件后缀名?

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,双击执行。成功拉。

 

以上是关于如何穿透多个文件夹批量修改文件后缀名?的主要内容,如果未能解决你的问题,请参考以下文章

如何在DOS下批量改后缀名

如何批量修改文件的后缀名001到100?

如何批量修改文件后缀名?cmd命令 ren *.gif *.jpg

如何批量修改文件后缀名?cmd命令 ren *.gif *.jpg

java修改文件后缀名

如何批量修改变量名的前缀或后缀