如何批量删除文件名中的一段?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何批量删除文件名中的一段?相关的知识,希望对你有一定的参考价值。

我想把图片中的中括号里的部分(包括中括号)全部删除,能用bat指令最好,不能的话也没关系,谢谢

我用python代码实现的,如图:

代码执行前

代码图片

执行代码

    代码执行后

    以下为文字代码:

    #/usr/bin/python3

    # -*- coding: UTF-8 -*-

    import os,re

    def reName(file_path):

        list = os.listdir(file_path) #列出文件列表

        for oldname in list: #对文件列表进行遍历

            newname = re.sub(r'【云少福利包\\d】','',oldname) #获取去掉括号之后的文件名

            #print(newname)

            os.rename(os.path.join(file_path,oldname),os.path.join(file_path,newname)) 

            #将文件名批量替换

        print('批量重命名运行完成!') 

    if __name__ == '__main__':

        filepath = 'D:/scripts/py/test' #定义文件路径

        reName(filepath) #调用reName函数

    参考技术A 不清楚你的实际文件/情况,仅以问题中的样例/说明为据
    复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行<# :
    cls
    @echo off
    rem 删除文件名中的中文方头括号及其里面的内容
    set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
    title %#% +%$%%$%/%@% %z%
    cd /d "%~dp0"
    powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default)))"
    echo;%#% +%$%%$%/%@% %z%
    pause
    exit
    #>
    $path='.';
    $files=@(dir -liter $path|?('.bat' -ne $_.Extension) -and ($_ -is [System.IO.FileInfo]));
    for($i=0;$i -lt $files.length;$i++)
        $newbase=($files[$i].BaseName -replace '【[^】]*?】','').trim();
        if(($newbase -ne '') -and ($newbase -ne $files[$i].BaseName))
            $newname=$newbase+$files[$i].Extension;
            $newfile=$files[$i].Directory.FullName+'\\'+$newname;
            Write-host ($files[$i].FullName+' --> '+$newname);
        ;
    ;

    追问

    没有效果啊,而且运行的时候也没有提示我要选什么编码呀?

    追答

    按运行后窗口标题栏中的提示联系我

    参考技术B 在这个文件夹建一个文本文件,改后缀名为bat,编辑文本内容如下:
    rename *2018*.* 2018*.*
    然后保存运行就可以了
    参考技术C

    1,打开并使用下图软件,点击【添加文件】按钮,将需要修改名称的文件全部添加到软件中,也可以通过将文件拖动到软件上的方式进行添加。

    2,如下图所示:命名方式选择“替换”;查找内容输入需要删除的文字或字符;替换内容什么都不用填写,留空。这时候我们在右边可以预览到新文件名已经删除了相同的文字。

    3,然后点击【开始重命名】红色按钮,启动软件程序。稍等片刻当软件提示“重命名成功”,说明软件完成批量删除文件名中相同文字的操作。

    4,最后检查这些文件,通过案例对比可以看出,新的文件名中完全删除了相同的文字

    如何在LINUX服务器上批量删除文件?

    我用SSH连接上服务器。。
    但是删除文件的时候..比如我要删除BBS文件夹里面的所有文件.
    他显示不能删除..要先把BBS里面的子文件夹里面的所有文件都删除了.
    才能删除文件夹...这样太麻烦了.
    删一个BBS的大文件夹要删半天..
    有什么方法可以直接删除BBS这个文件夹?

    rm -rf bbs
    就可以了。
    r是递归删除。
    f是不经确认就删除。(如果确认的话要一个文件一个文件的确认)
    参考技术A 后面加入参数 -r 就可以了~

    以上是关于如何批量删除文件名中的一段?的主要内容,如果未能解决你的问题,请参考以下文章

    如何用bat批量删除相同的文件名

    Win7如何批量删除.svn文件

    如何在LINUX服务器上批量删除文件?

    lua怎么批量删除文件名差不多的文件?

    大佬们 求一个批量删除文件名的bat文件的代码

    mac下如何批量删除空文件夹