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

[文件操作] BAT提取文件夹内所有文件夹内的图片

一个文件夹内 有100个文件夹,每个文件夹中有若干图片,想把图片全部提取出来按顺序排列
毕竟没有老师教,自学很痛苦的

forfiles 命令, for 命令, dir, MOVE 组合,应该都可以,  可以自学一下

TOP

回复 2# kangkangsz


    他要代码

TOP

回复 1# 朱科技


    按什么顺序排列?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4# Batcher


    顺序!就是Windows的字母排序,像这样:
16435.txt
a2ca.txt
您好.txt

TOP

回复 4# Batcher


    从第一个文件夹提取,接着提取第二个,第三个…………
毕竟没有老师教,自学很痛苦的

TOP

回复 4# Batcher

按文件名排序
毕竟没有老师教,自学很痛苦的

TOP

回复 7# 朱科技


    那就是Windows的默认排序咯

TOP

回复 7# 朱科技


    这和直接移动有什么区别?

TOP

  1. echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=*" %%i in ('dir /b /ad /s *') do (
  3.     pushd %%i&set Num=1001&echo 进入 %%i
  4.     for /f "delims=" %%j in ('"dir /b/a-d/on *.jpg *.jpeg *.png"') do (
  5.         if !Num! LSS 1000 (ren "%%j" "!Num:~-3!%%~xj") else ren "%%j" "!Num:~-3!%%~xj"
  6.         echo %%j 重命名为 !Num:~-3!%%~xj&set /a Num+=1
  7.     )
  8.     popd
  9. )
  10. pause
复制代码
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=*" %%i in ('dir/s/b/ad *') do (
  3.     pushd %%i&set Num=1&echo 进入 %%i
  4.     for /f "delims=" %%j in ('dir /b/a-d/oN "*.jpg"') do (
  5.         if !Num! LSS 1000 (ren "%%j" "!Num!%%~xj") else ren "%%j" "!Num!%%~xj"
  6.         echo %%j 重命名为 !Num!%%~xj&set /a Num+=1
  7.     )
  8.     popd
  9. )
  10. pause
复制代码

TOP

以上非提取排列分组,而是直接重命名

TOP

回复 10# xp3000


    同样也感谢
毕竟没有老师教,自学很痛苦的

TOP

本帖最后由 smss 于 2021-5-22 16:00 编辑
  1. @Echo off&SetLocal EnableDelayedExpansion&set n=0
  2. for /r %%i in (*.bmp,*.jpg,*.gif,*.png,*.ico)do set/a n+=1&ren "%%i" "!n!%%~xi"&move "%%~dpi!n!%%~xi" "%~dp0"
  3. echo 批量重命名移动完成!
  4. pause
复制代码
图片有时间字母等顺序
如果只是字母顺序只需要移动就好了 但此时就会有重名问题

TOP

回复 13# smss


    可以用if检测一下

TOP

返回列表