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、完成。
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批量重命名文件(在子文件夹里)的主要内容,如果未能解决你的问题,请参考以下文章