标题: [文件操作] 批处理怎样把图片移动到指定文件夹? [打印本页]
作者: k员外 时间: 2021-1-20 14:45 标题: 批处理怎样把图片移动到指定文件夹?
总共有两个文件夹
1.户口文件夹,这里面有240个小文件夹
2.扫描件文件夹,这里面有480张图片
我需要480张图片两张两张的移动到240个小文件夹里
例子如下
1jpg2jpg3jpg4jpg5jpg6jpg 文件夹1 文件夹2 文件夹3
文件夹1里1jpg2jpg
文件夹2里3jpg4jpg
文件夹3里5jpg6jpg
作者: 路过 时间: 2021-1-20 15:05
本帖最后由 路过 于 2021-1-20 15:06 编辑
最好上传一些附件,才能写出完整的代码
如果图片有敏感内容,可以用下面一行命令将图片粉碎成0kb(要事先备份好),再上传到压缩文件。复制代码
根据思路写的- @echo off
- pushd "扫描件文件夹"
- setlocal enabledelayedexpansion
- ::省略图片文件和文件夹的编号
- for /l %%a in (1,2,479) do (set/a w=%%a+1,e=1+%%a/2
- move "%%a.jpg" "户口文件夹\文件夹!e!\%%a.jpg"
- move "!w!.jpg" "户口文件夹\文件夹!e!\!w!.jpg"
- )
- pause
- exit
复制代码
作者: qixiaobin0715 时间: 2021-1-20 15:11
本帖最后由 qixiaobin0715 于 2021-1-20 15:49 编辑
回复 1# k员外
将下面bat代码放在“户口”文件夹下:- @echo off
- setlocal enabledelayedexpansion
- set /a k=0,m=0
- for /d %%a in (*) do (
- set /a k+=1
- set _!k!=%%a
- )
- for %%i in ("D:\扫描件\*.jpg") do (
- set /a m+=1
- set /a "n=(m-1)/2%%k+1"
- for %%j in (_!n!) do move "%%i" "!%%j!\"
- )
- pause
复制代码
作者: k员外 时间: 2021-1-20 15:26
回复 3# qixiaobin0715
没成功啊,大佬
作者: qixiaobin0715 时间: 2021-1-20 16:30
回复 4# k员外
运行结果如何?图片都是数字编号吗?
作者: qixiaobin0715 时间: 2021-1-20 16:32
是移动未达到要求,还是根本图片就没有移动?
作者: k员外 时间: 2021-1-20 16:39
回复 6# qixiaobin0715
没移动
作者: qixiaobin0715 时间: 2021-1-20 16:53
我这测试没问题。再说一遍吧:把bat代码文件放在户口文件夹下,户口\test.bat;图片文件放在“D:\扫描件\”中。bat文件另存为ANSI编码。
作者: k员外 时间: 2021-1-20 17:47
回复 8# qixiaobin0715
成功是成功了,但不是按照顺序来的
作者: qixiaobin0715 时间: 2021-1-20 18:31
回复 9# k员外
你举一个实际文件夹和文件的名称的例子,我抽空给你改一改代码。
作者: qixiaobin0715 时间: 2021-1-20 19:23
回复 1# k员外
你要的和这个差不多吧,如果是,可根据自己的需求改一下就行了。
http://www.bathome.net/viewthrea ... &from=favorites
作者: xczxczxcz 时间: 2021-1-20 19:39
涉及到排序,就不能瞎jb举例。
作者: qixiaobin0715 时间: 2021-1-21 08:56
回复 1# k员外
将240个小文件夹(文件夹名称为1,2,3...240)复制到图片文件夹下(不要将户口文件夹一起复制过来),下面代码存为test.bat,也放在图片文件夹下运行:- @echo off&setlocal enabledelayedexpansion
- for /l %%i in (1,1,480) do (
- set /a "n=(%%i-1)/2+1"
- move "%%i.jpg" "!n!\"
- )
- pause
复制代码
作者: k员外 时间: 2021-1-21 17:39
回复 10# qixiaobin0715
文件夹名为 新华点二期
里面的240文件夹为
1-201 1-202 1-203 1-301 1-302 1-303 1-401 1-402 1-403 1-501 1-502 1-503,
2-201 2-202 2-203 2-301 2-302 2-303 2-401 2-402 2-403 2-501 2-502 2-503,
3-201 3-202 3-203 3-301 3-302 3-303 3-401 3-402 3-403 3-501 3-502 3-503,
4-201 4-202 4-203 4-301 4-302 4-303 4-401 4-402 4-403 4-501 4-502 4-503,
5-201 5-202 5-203 5-301 5-302 5-303 5-401 5-402 5-403 5-501 5-502 5-503,
7-201 7-202 7-203 7-301 7-302 7-303 7-401 7-402 7-403 7-501 7-502 7-503,
8-201 8-202 8-203 8-301 8-302 8-303 8-401 8-402 8-403 8-501 8-502 8-503,
9-201 9-202 9-203 9-301 9-302 9-303 9-401 9-402 9-403 9-501 9-502 9-503,
10-201 10-202 10-203 10-301 10-302 10-303 10-401 10-402 10-403 10-501 10-502 10-503,
11-201 11-202 11-203 11-301 11-302 11-303 11-401 11-402 11-403 11-501 11-502 11-503,
12-201 12-202 12-203 12-301 12-302 12-303 12-401 12-402 12-403 12-501 12-502 12-503,
13-201 13-202 13-203 13-301 13-302 13-303 13-401 13-402 13-403 13-501 13-502 13-503,
14-201 14-202 14-203 14-301 14-302 14-303 14-401 14-402 14-403 14-501 14-502 14-503,
15-201 15-202 15-203 15-301 15-302 15-303 15-401 15-402 15-403 15-501 15-502 15-503,
16-201 16-202 16-203 16-301 16-302 16-303 16-401 16-402 16-403 16-501 16-502 16-503,
17-201 17-202 17-203 17-301 17-302 17-303 17-401 17-402 17-403 17-501 17-502 17-503,
18-201 18-202 18-203 18-204 18-301 18-302 18-303 18-304 18-401 18-402 18-403 18-404 18-501 18-502 18-503 18-503,
20-202 20-203 20-204 20-205 20-302 20-303 20-304 20-305 20-402 20-403 20-404 20-405 20-502 20-503 20-504 20-504,
21-203 21-204 21-205 21-206 21-303 21-304 21-305 21-306 21-403 21-404 21-405 21-406 21-503 21-504 21-505 21-505。
图片名是扫描出来的,都是类似于ee963f2238a41b75f63ddb8bcf469cc这种的。
作者: qixiaobin0715 时间: 2021-1-21 22:22
回复 14# k员外
实际上代码基本上写完。但是还要问一句,图片文件是按字母排序还是创建时间排序?注意,在批处理中,按字母排序和在windows中按“名称”排序还是有很大的区别的,是按先数字后字母的顺序排列。最好还是先说清楚,免得又白忙活。
测试图片:
作者: k员外 时间: 2021-1-22 14:16
回复 15# qixiaobin0715
是按创建时间排序的
作者: qixiaobin0715 时间: 2021-1-22 14:53
回复 16# k员外
将图片文件夹images和代码都放在文件夹“新华点二期”下,运行代码。未经测试,测试文件在家中电脑里,有问题再说:- @echo off
- setlocal enabledelayedexpansion
- set m=0
- for /l %%a in (1,1,21) do (
- if not %%a==6 if not %%a==19 set n=%%a
- for /d %%b in (!n!-*) do set /a m+=1&set _!m!=%%b
- )
- set x=0
- for /f "delims=" %%c in ('dir /b /a-d /od images\*.jpg') do (
- set /a x+=1
- set /a "y=(x-1)/2+1"
- for %%d in (_!y!) do copy "images\%%c" "!%%d!\"
- )
- pause
复制代码
作者: k员外 时间: 2021-1-22 18:09
回复 15# qixiaobin0715
好的,我试试
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |