标题: [文本处理] 【已解决】如何连续批量处理问题,部分BAT代码已有 [打印本页]
作者: bellacong 时间: 2020-5-8 01:02 标题: 【已解决】如何连续批量处理问题,部分BAT代码已有
大佬们,我是一个新手小白,我很努力的在网上搜索代码和内容。
但是还有一些不懂,求教。
小女子我会努力把事情说清楚。
在这里谢谢各位大佬!
我有这样一些文件。
这是第一级目录
里面有很多个文件夹,命名是按照“日期+事件”命名。(+是为了看清楚,实际没有+这个符号)
第二级目录是
“日期+事件”命名的文件夹里有很多命名为“编号+名字”的文件夹(+是为了看清楚,实际没有+这个符号)
第三级目录是
“编号+名字”的文件夹里有不止一张“随机数字”命名的图片.jpg(+是为了看清楚,实际没有+这个符号)
我想要把每个子文件夹里的.jpg图片,命名为“编号+名字+日期+事件+升序数字(例如1,2,3)”(+是为了看清楚,实际没有+这个符号)
然后全部提取到制定的文件夹。例如D:\test\all\
我想的逻辑是,
1.先重命名第二级目录所有文件夹的名字,把第一级目录“日期+事件”批量添加到第二级文件夹“编号+名字”的后面。
2.把文件夹里所有的图片重命名1到N升序数字,N不超过10。(图片名字就是1.jpg,2.jpg,3.jpg类似这样)
3.把第二级目录文件夹的名字“编号+名字+日期+事件”,添加到图片名字中,变成前缀。(图片名字就是编号+名字+日期+事件1.jpg,编号+名字+日期+事件1.jpg)(+是为了看清楚,实际没有+这个符号)
4.把所有这些重命名过的文件都移动到指定文件夹里。例如D:\test\all\
我想的挺麻烦的,我知道大神们肯定有更好的办法。求教!
我已经弄出来的。
把第二级目录里的“编号+名字”的文件夹放到指定E:\test\下,然后运行,可以把文件夹里的.jpg图片按照“文件夹名字”+升序数字(例如1,2,3)重命名。(+是为了看清楚,实际没有+这个符号)- @echo off
- setlocal enabledelayedexpansion
- set "lj=E:\test\"这个是必须把文件夹们放到指定目录下,能不能不指定
- for /f "delims=" %%a in ('dir /ad /b "%lj%"') do (
- set n=0
- for /f "delims=" %%b in ('dir /a-d /b "%lj%%%a\*.jpg"') do (
- set /a n+=1
- if !抄n! lss 10 (
- ren "%lj%%%a\%%b" "%%a0!n!.jpg"
- ) else (
- ren "%lj%%%a\%%b" "%%a!n!.jpg"
- )
- )
- )
- pause
复制代码
其他的我就不太会了。
求大佬指教,
或者帮忙码字。
小女子感激不尽。
作者: bellacong 时间: 2020-5-8 01:42 标题: wu
本帖最后由 bellacong 于 2020-5-8 15:22 编辑
wuwuwuwuwuuw
作者: smss 时间: 2020-5-8 13:52
本帖最后由 smss 于 2020-5-8 23:20 编辑
描述的太乱了 以下脚本放在你的text文件夹中执行- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir /ad /b') do (for /f "delims=" %%b in ('dir /ad /b "%%a"') do (for /f "delims=" %%c in ('dir /a-d /b "%%a\%%b\*.jpg"') do (set n=0&set /a n+=1
- if not exist "%~dp0all" md "%~dp0all"
- ::小于10时加0
- if !n! lss 10 (move "%%a\%%b\%%c" "%~dp0all\%%b%%a0!n!.jpg") else move "%%a\%%b\%%c" "%~dp0all\%%b%%a!n!.jpg"
- )))
- pause
复制代码
作者: bellacong 时间: 2020-5-8 16:12
回复 3# smss
大佬好厉害!!!跪谢大佬
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |