标题: [文件操作] BAT提取文件夹内所有文件夹内的图片 [打印本页]
作者: 朱科技 时间: 2021-5-21 13:50 标题: BAT提取文件夹内所有文件夹内的图片
一个文件夹内 有100个文件夹,每个文件夹中有若干图片,想把图片全部提取出来按顺序排列
作者: kangkangsz 时间: 2021-5-21 16:43
forfiles 命令, for 命令, dir, MOVE 组合,应该都可以, 可以自学一下
作者: 1152 时间: 2021-5-21 21:46
回复 2# kangkangsz
他要代码
作者: Batcher 时间: 2021-5-21 22:14
回复 1# 朱科技
按什么顺序排列?
作者: 1152 时间: 2021-5-22 09:45
回复 4# Batcher
顺序!就是Windows的字母排序,像这样:16435.txt
a2ca.txt
您好.txt
作者: 朱科技 时间: 2021-5-22 12:50
回复 4# Batcher
从第一个文件夹提取,接着提取第二个,第三个…………
作者: 朱科技 时间: 2021-5-22 12:51
回复 4# Batcher
按文件名排序
作者: 1152 时间: 2021-5-22 13:24
回复 7# 朱科技
那就是Windows的默认排序咯
作者: 1152 时间: 2021-5-22 13:25
回复 7# 朱科技
这和直接移动有什么区别?
作者: xp3000 时间: 2021-5-22 13:53
- echo off&setlocal enabledelayedexpansion
- for /f "tokens=*" %%i in ('dir /b /ad /s *') do (
- pushd %%i&set Num=1001&echo 进入 %%i
- for /f "delims=" %%j in ('"dir /b/a-d/on *.jpg *.jpeg *.png"') do (
- if !Num! LSS 1000 (ren "%%j" "!Num:~-3!%%~xj") else ren "%%j" "!Num:~-3!%%~xj"
- echo %%j 重命名为 !Num:~-3!%%~xj&set /a Num+=1
- )
- popd
- )
- pause
复制代码
- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=*" %%i in ('dir/s/b/ad *') do (
- pushd %%i&set Num=1&echo 进入 %%i
- for /f "delims=" %%j in ('dir /b/a-d/oN "*.jpg"') do (
- if !Num! LSS 1000 (ren "%%j" "!Num!%%~xj") else ren "%%j" "!Num!%%~xj"
- echo %%j 重命名为 !Num!%%~xj&set /a Num+=1
- )
- popd
- )
- pause
复制代码
作者: xp3000 时间: 2021-5-22 13:54
以上非提取排列分组,而是直接重命名
作者: 朱科技 时间: 2021-5-22 15:15
回复 10# xp3000
同样也感谢
作者: smss 时间: 2021-5-22 15:55
本帖最后由 smss 于 2021-5-22 16:00 编辑
- @Echo off&SetLocal EnableDelayedExpansion&set n=0
- for /r %%i in (*.bmp,*.jpg,*.gif,*.png,*.ico)do set/a n+=1&ren "%%i" "!n!%%~xi"&move "%%~dpi!n!%%~xi" "%~dp0"
- echo 批量重命名移动完成!
- pause
复制代码
图片有时间字母等顺序
如果只是字母顺序只需要移动就好了 但此时就会有重名问题
作者: 1152 时间: 2021-5-22 17:30
回复 13# smss
可以用if检测一下
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |