标题: [文件操作] 批处理如何根据文件名的最后一个字符将文件移动到不同文件夹? [打印本页]
作者: 001011 时间: 2014-9-18 23:14 标题: 批处理如何根据文件名的最后一个字符将文件移动到不同文件夹?
本帖最后由 pcl_test 于 2016-12-25 13:50 编辑
根据文件名尾部的字母分文件夹
找到尾部为D的文件分文件夹
比如此图中的
10001A-10028 生成001文件夹 并剪切到001里面
10029D-10036 生成002文件夹 并剪切到002里面
10037D-10049 生成003文件夹 并剪切到003里面
10050D-10060 生成004文件夹 并剪切到004里面
10061D-10076 生成005文件夹 并剪切到005里面
10077D-10093 生成006文件夹 并剪切到006里面
10094D-10111 生成007文件夹 并剪切到007里面
并找到尾部位B和C的文件复制到A的文件夹里面
比如此图中的
10004B-10025C 生成A文件夹 并复制(是复制不是剪切)到A里面
这样文件夹有很多 需要一次性批处理
非常感谢
由于 我上传的图片太大 所以发到网盘
http://pan.baidu.com/s/1qWobkks
作者: DAIC 时间: 2014-9-18 23:18
请给几个具体的例子
作者: 001011 时间: 2014-9-18 23:44
回复 2# DAIC
图片太大 我发到网盘了 麻烦您查看一下
作者: CrLf 时间: 2014-9-19 00:09
看不懂这有什么规律
作者: 001011 时间: 2014-9-19 00:13
回复 4# CrLf
找到尾部为D的 就和前一个D之后的 分文件夹啊
作者: 001011 时间: 2014-9-19 00:18
回复 4# CrLf
作者: 522235677 时间: 2014-9-19 13:23
不明白1111111
作者: terse 时间: 2014-9-19 15:10
本帖最后由 terse 于 2014-9-19 15:39 编辑
- @echo off&setlocal enabledelayedexpansion
- set n=1001
- set f=!n:~-3!
- for /f "delims=" %%i in ('dir /b /a-d /on *.jpg') do (
- set str=%%~ni
- if /i "!str:~-1!" == "D" (
- set /a n+=1
- set f=!n:~-3!
- ) else if /i "!str:~-1!" == "B" set f=A
- md "!f!" 2>nul
- if !f! == A (copy "%%i" "!f!") else move "%%i" "!f!"
- if /i "!str:~-1!" == "C" set f=!n:~-3!
- )
- pause
复制代码
作者: 001011 时间: 2014-9-19 20:37
本帖最后由 001011 于 2014-9-19 20:39 编辑
回复 8# terse
非常感谢 非常好用 就是复制后 B-C 丢在外面了 没有剪切到001里面去
再就是 能否加个路径呀 那样就可以一次性处理N个文件夹了
再次感谢
作者: terse 时间: 2014-9-19 21:14
回复 9# 001011
你顶楼的要求不是 ”10004B-10025C 生成A文件夹 并复制(是复制不是剪切)到A里面“ 吗?
剪切的话 11行改为 move "%%i" "!f!"
路径在DIR 哪里加试下
作者: 001011 时间: 2014-9-19 23:51
回复 10# terse
我是说 全部按要求复制完成后 001里面的文件是完整的 而你写的代码 001里面没有B到C 而是放到了外面
作者: terse 时间: 2014-9-20 00:00
回复 11# 001011
11行 if !f! == A (copy "%%i" "!f!") else move "%%i" "!f!" 改为 下面试下- if !f! == A ( copy "%%i" "!f!"&move "%%i" "001") else move "%%i" "!f!"
复制代码
作者: 001011 时间: 2014-9-20 01:26
非常感谢 目的达到了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |