File 重命名文件和文件夹递归删除下划线后的所有内容

File 重命名文件和文件夹递归删除下划线后的所有内容,file,rename,File,Rename,我试图建立一个脚本来自动重命名文件,但失败了,所以如果有人可以帮助 在同一文件夹中,我有如下文件名: exemple_012345-0abc1def.txt exemple_012345-0abc1def.config.txt exemple.txt exemple.config.txt 我想删除第一个下划线(包括)和第一个点之间的所有内容,这样我的文件名如下: exemple_012345-0abc1def.txt exemple_012345-0abc1def.config.txt e

我试图建立一个脚本来自动重命名文件,但失败了,所以如果有人可以帮助

在同一文件夹中,我有如下文件名:

exemple_012345-0abc1def.txt
exemple_012345-0abc1def.config.txt
exemple.txt
exemple.config.txt
我想删除第一个下划线(包括)和第一个点之间的所有内容,这样我的文件名如下:

exemple_012345-0abc1def.txt
exemple_012345-0abc1def.config.txt
exemple.txt
exemple.config.txt

谢谢

这可以用python轻松完成。我不确定这是否能在windows中与python完美结合

import os
for root, dirs, files in os.walk('.'):
    for fname in files:
        x = fname.index('_')
        y = fname.index('.')
        substr = fname[:x] + fname[y:]
        os.rename(fname, substr)

请发布您的脚本并指定脚本类型。请告诉我们您正在编写的脚本类型?(shell脚本/python脚本/batch文件等)。我在这里找到了一个批处理文件:@echo off setLocal EnableDELAYedeXpansion SET Folder=“C:\test”for/f”tokens=*delims=“%%a in('dir/s/a-d/on/b”%Folder%%“^ find”| find“|”)do(SET N=%%~Na调用:sub1 ren a!N!%%~Xa goto:eof:sub1 for/L%%I in(11 22)do(set S=!N:~%i^,1!if!S!eq_(set N=!N:~0,%%i!goto:done)):done goto:eof但这会删除下划线后的所有内容,直到扩展名(在我的示例中:example_012345.config.txt我想保留.config.txt)我也尝试过使用powershell:$f.name-NewName($f.name.substring(0,$f.name.indexof(''.'))+$f.name.substring($f.name.indexof('.')),但这根本不起作用。我也在python上用windows检查了它,并且工作正常。