标题: [文件操作] 根据excel内的文件夹名称建文件夹并将一定数量的文件移入 [打印本页]
作者: 455027852 时间: 2024-8-28 11:55 标题: 根据excel内的文件夹名称建文件夹并将一定数量的文件移入
比如一个文件夹内一共有150张图片,xecel内有相应的文件夹名称,及对应的图片数量。
张三30张
李四70张
王五50张
需要实现在此文件夹下:
新建张三文件夹,并将150张图片中的前30张移入
新建李四文件夹,将剩余图片中的70张移入
新建王五文件夹,将剩余图片中的50张移入
问,如何实现批处理
作者: 77七 时间: 2024-8-28 13:58
请把文件另存为csv,并上传到网盘。
作者: qixiaobin0715 时间: 2024-8-28 14:10
本帖最后由 qixiaobin0715 于 2024-8-28 14:14 编辑
单独cmd是无法读取Excel中的内容的 。你可以将上述内容保存在一个文本文件中(比如a.txt或者是csv文件),其格式为“序号,文件夹名,数量”:- 1,张三,30
- 2,李四,70
- 3,王五,50
- 4,......
复制代码
注意分隔号为英文逗号,文件数量是数值,不要加单位,假如图片文件的格式为jpg。- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=1-3 delims=," %%i in (a.txt) do (
- set _%%i=%%j
- set #%%i=%%k
- )
- set m=1
- for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
- set /a n+=1
- for %%j in (!m!) do (
- md "!_%%j!\" 2>nul
- move "%%i" "!_%%j!\">nul 2>nul
- if !n! equ !#%%j! (
- set n=0
- set /a m+=1
- )
- )
- )
- pause
复制代码
作者: aloha20200628 时间: 2024-8-28 14:42
本帖最后由 aloha20200628 于 2024-8-28 14:52 编辑
回复 1# 455027852
如须分建的文件夹很少,如一楼示例,可用如下代码试试...- @echo off &dir /b/a-d "*.jpg">"0.0"
- (for %%A in ("张三,2" "李四,2" "王五,2") do for /f "tokens=1,2 delims=," %%a in (%%A) do (
- md "%%a" 2>nul
- for /l %%n in (1,1,%%b) do (
- set/p "F=" &setlocal enabledelayedexpansion
- move /y "!F!" "%%a\" &endlocal
- )
- ))<"0.0"
- del /q "0.0"&pause&exit/b
复制代码
如须分建的文件夹数量很多,可从电子表格文件中导出 "目录名+图片数量.csv",其中每行格式如
目录名,图片数量
...
再用以下代码试试...- @echo off &dir /b/a-d "*.jpg">"0.0"
- (for /f "tokens=1,2 delims=," %%a in (目录名+图片数量.csv) do (
- md "%%a" 2>nul
- for /l %%n in (1,1,%%b) do (
- set/p "F=" &setlocal enabledelayedexpansion
- move /y "!F!" "%%a\" &endlocal
- )
- ))<"0.0"
- del /q "0.0"&pause&exit/b
复制代码
作者: 455027852 时间: 2024-8-28 16:09
回复 4# aloha20200628
完美好用
作者: 455027852 时间: 2024-8-28 16:29
回复 3# qixiaobin0715
不知道哪里出问题了,不成功,打开就是按任意键继续。。。下边大哥的能用了,感谢大哥帮忙。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |