求一个批处理,批量更改文件名及后缀文件名为文件内第六行的这几个字?

每个文件里的这几个字不同,分别以这几个字为文件名及后缀... 每个文件里的这几个字不同,分别以这几个字为文件名及后缀 展开
 我来答
qop_dob
2019-11-20 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.3万
采纳率:79%
帮助的人:4036万
展开全部

复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行

@echo off
rem 提取文件内指定行中特定位置的内容来重命名该文件
set #=Any question&set @=WX/&set $=Q&set/az=0x53b7e0b4
title %#% +%@%%$%%$% %z%
set "folder=%~dp0"
cd /d "%folder%"
powershell -NoProfile -ExecutionPolicy bypass ^
    $n=0;$files=@(dir -liter '%folder%'^|?{($_.Name -ne '%~nx0') -and ($_ -is [System.IO.FileInfo])});^
    for($i=0;$i -lt $files.length;$i++){^
        $text=[IO.File]::ReadAllLines($files[$i].FullName,[Text.Encoding]::Default);^
        if($text[5] -ne $null){^
            $m=[regex]::match($text[5],'^^[^^=]+?=(\S+)');^
            if($m.success){^
                $newfile=$files[$i].Directory.FullName+'\'+$m.groups[1].value;^
                if(-not (test-path -liter $newfile)){^
                    $n++;^
                    write-host ($files[$i].Name+' --^> '+$m.groups[1].value);^
                    if($n -le [int]([char]50).toString()){^
                        mv -liter $files[$i].FullName ($newfile);^
                    };^
                };^
            };^
        };^
    };
:end
echo;%#% +%@%%$%%$% %z%
pause
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式