标题: [文件操作] 如何根据文件名中的前缀/指定字符串将文件移动到以该前缀/指定字符串命名的文件夹里 [打印本页]
作者: neebeki 时间: 2016-12-29 11:08 标题: 如何根据文件名中的前缀/指定字符串将文件移动到以该前缀/指定字符串命名的文件夹里
本帖最后由 pcl_test 于 2016-12-30 21:14 编辑
哪位大神可以帮忙做一个BAT
我这里每天会生成很多照片(jpeg),但前缀都不一样,可以识别:如 123_1.jpeg , 234_1.jpeg , 345_1.jpeg 等等。
现在我需要批量处理他们,将不同前缀的图片,放入相对应的文件夹内。
需要有的功能:
1、自动识别文件夹并复制进去
2、有重名的文件要有提示功能,我会手动选择是否要覆盖
3、没有相对应文件夹的图片,可以根据前缀来自动建立文件夹。
现在我这里有两组代码,但不懂得怎么组合在一起。而且第二条功能也无法达到。- @echo off
- for /f %%i in ('dir /b %cd%\*.jpg') do (
- for /f "delims=- tokens=1" %%j in ('echo,%%i') do (
- copy %cd%\%%i %cd%\%%j\
- del /f /q %cd%\%%i
- attrib
- copy /y
- )
- )
复制代码
↑ 这段满足第一个要求- @echo off
- for /f"tokens=1*delims=-"%%i in ('dir/b/a-d*-*|findstr/iv"%~0"')do(
- echo %%i-%%j
- if not exist"%%i\"md"%%i"
- move"%%i-%%j" "%%i\")
- pause
复制代码
↑ 这段满足第三个要求
拜托各位大神了!在线等!
作者: hlzj88 时间: 2016-12-30 06:56
- @echo off
- for /f "delims=_- tokens=1" %%i in ('dir /b *.jp*g') do (
- md %%i>nul 2>nul
- move /-y %%i*.jp*g %%i\
- )
- pause
复制代码
和图片保存在一起 注意你图片名的分隔符 _ 和 -,如有其它需自加
作者: neebeki 时间: 2017-1-2 13:41
回复 2# hlzj88
大神,如果我有很多的图片的话,如何实现有线处理未重复的图片,然后再处理重复名称的图片呢?
因为我发现,您给我的BAT中,是按名次分类,然后按一个文件夹一个一个图片确认、再确认下一个文件夹。
所以能否先处理未重复的图片,再处理重复的图片。
作者: Nsqs 时间: 2017-1-2 21:09
本帖最后由 Nsqs 于 2017-1-2 22:28 编辑
- @echo off
- set "a文件夹=A" %要复制的目标目录%
- set "b文件夹=B" %B路径%
- for %%1 in (%b文件夹%\*.jpeg)do set #_%%~nx1=%%1
- for %%1 in (%a文件夹%\*.jpeg)do (
- if defined #_%%~nx1 (
- set #_#%%1=%%1
- )else (
- echo d|xcopy /y "%%1" "%b文件夹%"
- )
- )
- (for /f "tokens=2 delims==" %%1 in ('set #_#')do copy /-y "%%1" "%b文件夹%") 2>nul
复制代码
作者: hlzj88 时间: 2017-1-3 07:17
- @echo off
- rem 第一步确认重复并移动
- md 重复>nul
- for /f %%i in ('dir /b/s d:\图片\*.jp*g') do (
- move "%%i" 重复\
- )
- rem 不重复的建文件夹并移动
- for /f "delims=_- tokens=1" %%i in ('dir /b *.jp*g') do (
- md d:\图片\%%i>nul 2>nul
- move /y %%i*.jp*g d:\图片\%%i\
- )
- pause
复制代码
时间关系未测试,和图片放一起,假设的路径自己修改
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |