[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已解决】如何连续批量处理问题,部分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)重命名。(+是为了看清楚,实际没有+这个符号)
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "lj=E:\test\"这个是必须把文件夹们放到指定目录下,能不能不指定
  4. for /f "delims=" %%a in ('dir /ad /b "%lj%"') do (
  5. set n=0
  6. for /f "delims=" %%b in ('dir /a-d /b "%lj%%%a\*.jpg"') do (
  7. set /a n+=1
  8. if !抄n! lss 10 (
  9. ren "%lj%%%a\%%b" "%%a0!n!.jpg"
  10. ) else (
  11. ren "%lj%%%a\%%b" "%%a!n!.jpg"
  12. )
  13. )
  14. )
  15. pause
复制代码
其他的我就不太会了。
求大佬指教,
或者帮忙码字。
小女子感激不尽。

wu

本帖最后由 bellacong 于 2020-5-8 15:22 编辑

wuwuwuwuwuuw

TOP

本帖最后由 smss 于 2020-5-8 23:20 编辑

描述的太乱了 以下脚本放在你的text文件夹中执行
  1. @echo off&setlocal enabledelayedexpansion
  2. 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
  3. if not exist "%~dp0all" md "%~dp0all"
  4. ::小于10时加0
  5. if !n! lss 10 (move "%%a\%%b\%%c" "%~dp0all\%%b%%a0!n!.jpg") else move "%%a\%%b\%%c" "%~dp0all\%%b%%a!n!.jpg"
  6. )))
  7. pause
复制代码

TOP

回复 3# smss


    大佬好厉害!!!跪谢大佬

TOP

返回列表