bat怎么批量以文件夹名字命名文件夹中第一个文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bat怎么批量以文件夹名字命名文件夹中第一个文件?相关的知识,希望对你有一定的参考价值。

比如说有文件夹A,B,C, 然后命名给文件夹A中第一个文件名为A B中的第一个为B 以此类推

参考技术A 不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的多个文件夹放一起双击运行<# :
cls&echo off&cd /d "%~dp0"&mode con lines=5000
rem rem 将多个文件夹内排在第一位的文件以所在文件夹名重命名
set #=Any questions&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
#>
$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);
$self=get-item -literal $env:self;
$current=$self.Directory.FullName;
$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]|%$_.Name);
    if($files.length -ge 1)
        $arr=[ExpDir]::Sort($files);
        for($j=0;$j -lt $arr.count;$j++)
            $ext='';
            $m=[regex]::match($arr[$j], '\\.[^\\.]+$');
            if($m.Success)$ext=$m.groups[0].value;
            $folders[$i].FullName.Substring($current.length)+'\\'+$arr[$j]+$c+$folders[$i]+$ext;
            break;
        
    

python怎样批量修改文件名

参考技术A os.rename(a,b)是把a重命名为b(名字带路径)
os.listdir(path)以列表形式获取路径下文件(包括文件夹),os.listdir(“.”)是当前文件夹
然后。。。想怎么重命名就怎么写程序。。。遍历,(检查,)修改。。。
如果待重命名的文件和py程序在一个文件夹会很方便,重命名不需要路径,像os.rename(“1.txt”,“2.txt”)
如果重命名的规则没法表述,那只能自己一个个改了。。。本回答被提问者采纳
参考技术B import shutil
import os
os.rename("oldname","newname")
shutil.move("oldpos","newpos")以前两个命令都能改名,先把文件路径放到一个列表里,然后批量调用上面的命令

以上是关于bat怎么批量以文件夹名字命名文件夹中第一个文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何用BAT命令批量移动文件到文件夹?

怎么用bat脚本写个批量修改图片名称?

怎么用bat复制指定的一个文件到指定文件夹,并重命名?

.bat 用于批量重命名以增加 fname 中的数字

bat脚本照片复制重命名?

bat批量重命名(指定替换字符)