标题: [文件操作] 求助批处理替换文件名关键时,按指定序号给文件编号。 [打印本页]
作者: qd2024 时间: 2024-1-22 10:09 标题: 求助批处理替换文件名关键时,按指定序号给文件编号。
链接:https://pan.baidu.com/s/125YveNdyt_SfrB5j4YDRFg?pwd=94b8
提取码:94b8
--来自百度网盘超级会员V10的分享
1原始图片 文件夹 中 有图片 若干
目标: ① 先将目录下原有图片文件名中的“_”替换为"-"。
改前 同步专题04三国两晋南北朝时期-政权分立[00_00_07][20240122-081357]
改后 同步专题04三国两晋南北朝时期-政权分立[00-00-07][20240122-081357]
②在文件名前加上4加上4位数的自然数编号,并在编号与①处理后的文件之间加上“_”
在处理②前,需要手动输入一个自然数,用来确认编号的开始数值。
比如,输入的开始数值为95,则①例中的例子处理后就是
0095_同步专题04三国两晋南北朝时期-政权分立[00-00-07][20240122-081357]
希望操作程序是,把要处理 文件夹 拖到这个BAT文件上,松开后,代码运行,提示开始编号,输入编号,处理文件,显示处理完成,手动关闭完成窗口。
感谢
作者: qixiaobin0715 时间: 2024-1-22 11:17
不建议用“拖”的懒办法,有时容易出现问题:- @echo off
- set /p n=Please input initialvalue:
- set /a n+=9999
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
- set /a n+=1
- set "str=%%i"
- set "str=!str:_=-!"
- ren "%%i" "!n:~1!_!str!"
- )
- pause
复制代码
作者: newswan 时间: 2024-1-22 13:02
加一个功能,重新排序
作者: qd2024 时间: 2024-1-22 13:52
回复 2# qixiaobin0715
谢谢 如果不拖的话 能不能让BAT支持子目录 有时图片太多 BAT和要处理的文件夹同级 处理时能方便一点
作者: qd2024 时间: 2024-1-22 13:53
回复 3# newswan
怎么理解
作者: pd1 时间: 2024-1-22 14:17
- @echo off
- set /p n=Please input initialvalue:
- set /a n+=9999
- setlocal enabledelayedexpansion
- cd /d "%1"
- for /f "delims=" %%i in ('dir /b/s /a-d *.jpg') do (
- set /a n+=1
- set "str=%%i"
- set "str=!str:_=-!"
- ren "%%i" "!n:~1!_!str!"
- )
- pause
复制代码
作者: qixiaobin0715 时间: 2024-1-22 14:38
回复 6# pd1
好像第8行应修改为:复制代码
作者: newswan 时间: 2024-1-22 14:39
回复 5# qd2024
如果某个数输错了,可以重新来
作者: qixiaobin0715 时间: 2024-1-22 15:14
本帖最后由 qixiaobin0715 于 2024-1-22 16:14 编辑
newswan说的应当是代码前面加上几行这个:- @echo off
- :a
- set /p n=Please input initialvalue:
- set /a m=n
- if %m% neq %n% (
- echo,Input error.
- goto a:
- )
- set /a n+=9999
复制代码
如果输入的不是数字,就会提醒输入错误,提示输入初值。
作者: qd2024 时间: 2024-1-22 18:34
如何让代码支持子目录啊 谢谢
作者: newswan 时间: 2024-1-22 18:56
回复 9# qixiaobin0715
嗯,我以前有个常用的,需要手动输入,偶尔会出错
作者: 77七 时间: 2024-1-22 21:40
- @echo off
- set /p m=输入编号:
- set /a m-=1
- for %%a in (%*) do (
- pushd "%%~a"
- for /f "delims=" %%i in ('dir /b /s /a-d *.jpg') do (
- set f=%%i
- set n=%%~nxi
- set /a m+=10001
- setlocal enabledelayedexpansion
- ren "!f!" "!m:~-4!_!n:_=-!"
- endlocal
- )
- popd
- )
- pause
复制代码
作者: pd1 时间: 2024-1-23 18:07
回复 7# qixiaobin0715
是的。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |