Bat批处理:批量重命名包含指定名称文件夹里的指定文件

1.批处理范围:脚本所在目录里所有的子文件夹(有的是二层结构,有的三层结构或四层)
2.指定名称文件夹为:只要文件夹名称里包含(正或Z)这两个任何一个都进行文件重命名
3.指定文件为:文件夹里的最后一个文件(重命名为TYT-1)
4.图片格式为:jpg 及 tif
求具体代码

1. 单一的重命名,代码如下:
@echo off
rename D:\111\111.txt 222.txt
pause

2. 批量的重命名,请根据你的命名规则使用for循环即可。代码如下:
@echo off
cd /d D:\
if exist 111.txt (
if not exist D:\111\ md 111
copy 111.txt 111\222.txt
del 111.txt
rename 111\333.txt 444.txt
)
pause

3. 知道文件名如111.txt,但不明确它的路径,搜索文件如下:
@echo off
for %%i in (c d e f g h) do (
cd /d %%i:\
echo 搜索%%i盘...
dir /s /b 111.txt
)
pause

4. 知道文件名比如(*\111\222.txt)盘符不知道,自动搜索并修改为333.txt
@echo off
for %%i in (c d e f g h) do (
cd /d %%i:\
echo 搜索%%i盘...
rem 搜索111文件夹
for /f %%j in ('dir /s /b /a:d *111') do (
if "%%~nj"=="111" (
if exist %%j\222.txt (
echo rename %%j\222.txt 333.txt
rename %%j\222.txt 333.txt
)
)
)
)
pause
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-04-13
难点在第3点,必须知道文件名的命名规则,因BAT对文件的排序和WIN往往不一样。
BAT中13.txt排在2.txt前面,是按文件名逐字比较。而WIN中按数字大小比较。追问

图片的文件名格式都是三位数 001 002 003

追答

还有一点:如果像aaZ这样文件夹下,里面还有aa1文件夹,那么aaZ中最后一个文件,是仅指aaZ当前文件夹中最后一个,还是也要把aa1中的文件都要算进来?

追问

aaZ当前文件夹中最后一个即可

追答

一定要备份源文件

@echo off
for /f "delims=" %%a in ('dir /ad/s/b') do (
set "str=%%~nxa"
setlocal enabledelayedexpansion
if not "!str:Z=!"=="!str!" set flag=1
if not "!str:正=!"=="!str!" set flag=1
if defined flag (
for /f "delims=" %%b in ('dir /a-d/b "%%a"') do set "file=%%a\%%b"&set "ex=%%~xb"
ren "!file!" "TYT-1!ex!"
)
endlocal
)
pause

追问

能不能再加上一个条件,只修改jpg或tif图像文件

追答

可以。那最后一个文件就是指最后一个jpg或tif,而不是所有文件的最后一个,对吧?

追问

追答@echo off
for /r /d %%a in (*) do (
    set "str=%%~nxa"
    setlocal enabledelayedexpansion
    if not "!str:Z=!"=="!str!" set flag=1
    if not "!str:正=!"=="!str!" set flag=1
    if defined flag for /f "delims=" %%b in ('dir /a-d/b "%%a"^|findstr /i /r /e ".jpg .tif"') do set "file=%%a\%%b"&set "ex=%%~xb"
    if defined ex ren "!file!" "TYT-1!ex!"
    endlocal   
)

本回答被提问者采纳

Bat批处理:求大神支招,批量修改文件夹内指定文件的名称,根据文件夹的...
跟文件夹放一起运行@echo offrem 批量将指定扩展名\/后缀的文件重命名成该文件所在文件夹\/目录的名称set #=Any question&set $=Q&set\/az=0x53b7e0b4title %#% +%$%%$% %z%cd \/d "%~dp0"for \/f "delims=" %%a in ('dir \/ad\/b') do ( for \/f "delims=" %%b in ('dir ...

怎么用bat批量重命名文件夹名
使用BAT批处理脚本批量重命名文件夹名,可以通过以下步骤实现:1. **打开记事本或任何文本编辑器**:首先,你需要打开记事本(Notepad)或你选择的任何文本编辑器来编写BAT脚本。2. **编写BAT脚本**:在记事本中输入以下示例脚本,用于将指定目录下所有文件夹的名称前添加"Prefix_"前缀。请将`C:\\path...

bat批量重命名(指定替换字符)
最后,保存文本文件,将扩展名改为.bat(表示批处理文件),然后双击运行它。这样,所有符合规则的文件名都会自动更新为新的格式。通过以上步骤,你可以轻松地批量重命名文件,无需逐个操作。

批处理BAT。修改指定文件夹(带目录)下的文件名称(单一的和批量的)
pause 2. 批量的重命名,请根据你的命名规则使用for循环即可。代码如下:echo off cd \/d D:\\ if exist 111.txt (if not exist D:\\111\\ md 111 copy 111.txt 111\\222.txt del 111.txt rename 111\\333.txt 444.txt )pause 3. 知道文件名如111.txt,但不明确它的路径,搜索文件如下:ech...

怎么用bat批量重命名文件夹名?
1、右击电脑桌面的空白处,新建一个文本文档。2、新建完成后在空白的文本文档中输入代码@echo offstart cmd%0,输入完成后点击页面上的保存选项将该文件保存。3、将刚刚保存的TXT文件更改为.BAT后缀。4、双击该bat文件即可。

使用批处理程序bat批量重命名文件
这种方法的基本步骤是:首先,通过批处理程序提取出文件的原始名称,通常会生成一个包含文件清单的文本文件。接着,将这些名称导入Excel,利用Excel的函数为每个文件生成对应的ren命令(用于文件重命名)。最后,将这些ren命令整理成一个.bat脚本,执行以完成批量重命名。然而,这种方法存在一定的局限性,且...

批处理:批量重命名父文件夹下所有子文件夹里的文件
除了批处理文本自身。注意事项:批处理文件的扩展名为bat 。目前比较常见的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本;而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。

BAT批处理脚本:怎样批量修改文件名?
比如,基于之前的猜测,我搜索的时候可能就会使用这样的关键词“REN命令 通配符”,或者再退一步,没有得到猜测,那关键词可能是“部分重命名 批处理 BAT”,关于通配符部分,或许还可以搜索一份完整的通配符用法。同理,当需要删除大量子文件夹下的重复文件,同样去搜索跟ren对应的命令即可,你将会得到del...

求BAT或者VBS脚本,批量重命名一个文件夹下面的文件为0001 、0002、0003...
"ren "%%~i" "!name!%%~xi"rem 如果不想保留扩展名则把上一句改成:ren "%%~i" "!name!")echo All Done pause & exit 楼上的虽然是九级。。但是我的代码兼容任意扩展名。。还请lz测试后再做决定。而且ls的cd在别的盘符不管用(如果批处理在c:盘,而目标文件夹在d:盘则cd不过去)...

bat批处理文件,怎样删除文件名中指定的字符?带半角的括号
下载工具:优速文件批量重命名 步骤1,下载安装上面的工具软件后打开,点击【添加文件】按钮,将需要修改名称的文件全部添加到软件中,也可以通过将文件拖动到软件上的方式进行添加。步骤2,接下来就是对软件进行设置的环节,如下图所示:命名方式选择“替换”;查找内容输入需要删除的文字或字符;替换内容...

相似回答