Board logo

标题: [文件操作] 根据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. 1,张三,30
  2. 2,李四,70
  3. 3,王五,50
  4. 4,......
复制代码
注意分隔号为英文逗号,文件数量是数值,不要加单位,假如图片文件的格式为jpg。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1-3 delims=," %%i in (a.txt) do (
  4.     set _%%i=%%j
  5.     set #%%i=%%k
  6. )
  7. set m=1
  8. for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
  9.     set /a n+=1
  10.     for %%j in (!m!) do (
  11.         md "!_%%j!\" 2>nul
  12.         move "%%i" "!_%%j!\">nul 2>nul
  13.         if !n! equ !#%%j! (
  14.             set n=0
  15.             set /a m+=1
  16.         )
  17.     )
  18. )
  19. pause
复制代码

作者: aloha20200628    时间: 2024-8-28 14:42

本帖最后由 aloha20200628 于 2024-8-28 14:52 编辑

回复 1# 455027852

如须分建的文件夹很少,如一楼示例,可用如下代码试试...
  1. @echo off &dir /b/a-d "*.jpg">"0.0"
  2. (for %%A in ("张三,2" "李四,2" "王五,2") do for /f "tokens=1,2 delims=," %%a in (%%A) do (
  3. md "%%a" 2>nul
  4. for /l %%n in (1,1,%%b) do (
  5. set/p "F=" &setlocal enabledelayedexpansion
  6. move /y "!F!" "%%a\" &endlocal
  7. )
  8. ))<"0.0"
  9. del /q "0.0"&pause&exit/b
复制代码
如须分建的文件夹数量很多,可从电子表格文件中导出 "目录名+图片数量.csv",其中每行格式如
   目录名,图片数量
   ...

再用以下代码试试...
  1. @echo off &dir /b/a-d "*.jpg">"0.0"
  2. (for /f "tokens=1,2 delims=," %%a in (目录名+图片数量.csv) do (
  3. md "%%a" 2>nul
  4. for /l %%n in (1,1,%%b) do (
  5. set/p "F=" &setlocal enabledelayedexpansion
  6. move /y "!F!" "%%a\" &endlocal
  7. )
  8. ))<"0.0"
  9. del /q "0.0"&pause&exit/b
复制代码

作者: 455027852    时间: 2024-8-28 16:09

回复 4# aloha20200628


    完美好用
作者: 455027852    时间: 2024-8-28 16:29

回复 3# qixiaobin0715


    不知道哪里出问题了,不成功,打开就是按任意键继续。。。下边大哥的能用了,感谢大哥帮忙。




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2