bat批量重命名文件(在子文件夹里)

Posted

tags:

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

文件夹a内有大量jpg和png图片(含子文件夹),我想把这些图片按顺序命名,并把原文件名保存到bat.log文件内,一行一个文件名。例如:
a/img.jpg;
a/url/photokk.jpg;
a/url2/myfile.jpg;
命名为:
a/10001.jpg;
a/url/10002.jpg;
a/url2/10003.jpg;
复制一份到新文件名可以放到其它文件夹中,可以不带子文件夹,如:
b/10001.jpg;
b/10002.jpg;
b/10003.jpg;
另外bat.log需要保存有:
img.jpg
photokk.jpg
myfile.jpg
一行一个文件名
下面只能重名 怎么拷贝到一个路径下b/10001.jpg ... 这样

@echo off & setlocal enabledelayedexpansion
set "foldername=a"
set /a num=10000
rem foldername设置文件夹名称
pushd "!foldername!" || goto :eof
(for /f "tokens=* delims=" %%i in ('dir /s /b /a-d /on *.jpg *.png') do (
set /a num+=1
ren "%%i" "!num!.jpg" && echo !num! %%~nxi "%%~fi"
))>"%~dp0bat.log"
echo 批量重命名完成!
pause

  方法/步骤如下:

  1、新建一个Excel文件,将原文件名、修改后文件名按照图片中格式,输入到表中。(行数不限)

  2、新建一个txt文件,将表格内容复制到txt文件中。

  3、将新建的txt文件另存为“重命名.bat”

  4、将bat文件与需要重命名的文件放在同一文件夹下面,然后双击“重命名.bat”

  5、完成。

  

参考技术A @echo off & setlocal enabledelayedexpansion
set "foldername=a"
set /a num=10000
rem foldername设置文件夹名称
pushd "!foldername!" || goto :eof
(for /r %%i in (*.jpg,*.png) do (
    set /a num+=1
    copy/y "%%i" ".\\b\\!num!%%~xi"
    ren "%%i" "!num!.jpg" && echo !num! %%~nxi "%%~fi"
))>"%~dp0bat.log"
echo 批量重命名完成!
pause

能处理子文件夹,并复制一份文件到文件夹b下.

本回答被提问者采纳

bat遍历当前目录下的文件,批量重命名

@echo off
setlocal enabledelayedexpansion
for  %%x in (*) do (
    if not "%%x"=="demo.bat" (
        set /a sum+=1
        rename "%%x" "!sum!.jpg"
	
)
)
pause

  

以上是关于bat批量重命名文件(在子文件夹里)的主要内容,如果未能解决你的问题,请参考以下文章

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

bat批量重命名文件

bat批处理:根据文本文件批量重命名文件

批处理:批量重命名父文件夹下所有子文件夹里的文件

Windows系统下批量重命名文件(bat命令版本)

怎么批量重命名多个文件夹里的图片