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

[文件操作] 【已解决】批处理如何根据文件夹关键词分类图片

本帖最后由 小吴 于 2022-4-10 20:27 编辑

做图
  -套装
           --778
           --779
           --776
  -睡裙
          --888
          --999
          --881
-778主图1.jpg
-779主图1.jpg
-776主图1.jpg
-888主图1.jpg
-999主图1.jpg
-881主图1.jpg



效果
做图
      -套装
           --778
                 ---778主图1.jpg
           --779
                 ---779主图1.jpg
           --776
                 ---776主图1.jpg
     -睡裙
          --888
                 ---888主图1.jpg
          --999
                 ---999主图1.jpg
          --881
                 ---881主图1.jpg
谢谢老师

回复 6# Batcher

好的,感谢

TOP

回复 11# qixiaobin0715


    这个可以谢谢,

TOP

本帖最后由 qixiaobin0715 于 2022-4-10 10:32 编辑

发上去了就感觉上面代码还是有问题,应当把最外层的for循环放在最内层好一些。
  1. @echo off
  2. set KeyWords=主图 全景照片
  3. for /f "delims=" %%i in ('dir /b /ad') do (
  4.     pushd "%%i"
  5.     for /f "delims=" %%j in ('dir /b /ad') do (
  6.         for %%a in (%KeyWords%) do move "..\%%j%%a*.jpg" "%%j">nul
  7.     )
  8.     popd
  9. )
  10. pause
复制代码

TOP

是的,楼主提供的信息还是不典型。
借用Batcher代码我觉得可以这样:
  1. @echo off
  2. set KeyWords=主图 全景照片
  3. for %%a in (%KeyWords%) do (
  4.     for /f "delims=" %%i in ('dir /b /ad') do (
  5.         pushd "%%i"
  6.         for /f "delims=" %%j in ('dir /b /ad') do (
  7.             move "..\*%%j%%a*.jpg" "%%j"
  8.         )
  9.         popd
  10.     )
  11. )
复制代码
注意事项:
1.图片名称最好都是规则命名:数字+通用词汇(“xxx图”或“xxx照片”等)+xxx.jpg
2.如果一级文件夹下的图片名称中含有“主图、竖图、全景照片”等多个通用词汇,请自行修改代码第2行变量值,各通用词汇之间用空格分开。如果只有一个通用词汇,就只保留一个。

TOP

回复 8# qixiaobin0715


    等等看楼主的测试结果吧,给的例子像是瞎编的,不知道真实数据的规律是怎样的
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

我觉得还是不妥,如果图片中有一个是:873竖图.jpg,并且又存在若干8731竖图.jpg,8732竖图.jpg...等图片,就会有问题。

TOP

回复 6# Batcher
pushd "%%i"后,第5行代码是否应当修改为:
  1. move "..\*%%j*.jpg" "%%j"
复制代码

TOP

回复 5# 小吴


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('dir /b /ad') do (
  4.     echo 正在处理二级文件夹:%%i
  5.     pushd "%%i"
  6.     for /f "delims=" %%j in ('dir /b /ad') do (
  7.         echo 三级文件夹:%%j
  8.         move "*%%j*.jpg" "%%j"
  9.     )
  10.     popd
  11. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4# Batcher


   
做图(一级文件夹)
  -套装(二级文件夹)
           --778(三级文件夹)
           --779(三级文件夹)
           --776(三级文件夹)
  -睡裙
          --888(三级文件夹)
          --999(三级文件夹)
          --881(三级文件夹)
-778主图1.jpg(二级文件)
-779主图1.jpg(二级文件)
-776主图1.jpg(二级文件)
-888主图1.jpg(二级文件)
-999主图1.jpg(二级文件)
-881主图1.jpg(二级文件)



效果
做图(一级文件)
      -套装(二级文件)
           --778(三级文件)
                 ---778主图1.jpg
           --779(三级文件)
                 ---779主图1.jpg
           --776(三级文件)
                 ---776主图1.jpg
     -睡裙(二级文件)
          --888(三级文件)
                 ---888主图1.jpg
          --999(三级文件)
                 ---999主图1.jpg
          --881(三级文件)
                 ---881主图1.jpg

把二级文件夹的*.jpg的文件按照文件名称移动到相应的三级文件夹里面

TOP

回复 3# 小吴


    你这个截图跟顶楼的描述完全不一样啊。比如“501竖图”应该移动到哪里去?规律是啥?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Batcher


    图片链接:http://qr61.cn/oaCdYX/qYNG7ob

TOP

回复 1# 小吴


请使用下面的 tree 命令生成真实的目录结构然后发出来看看
tree /f "D:\你自己的真实路径\做图" > 1.txt

如需上传截图,请用图床:
http://bbs.bathome.net/thread-60985-1-1.html

如需上传附件,请用阿里云盘或百度网盘。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表