Board logo

标题: [文件操作] 【已解决】批处理列表范围or数量文件并移至对应文件夹(新建) [打印本页]

作者: Mizar    时间: 2022-2-20 21:54     标题: 【已解决】批处理列表范围or数量文件并移至对应文件夹(新建)

本帖最后由 Mizar 于 2022-2-21 19:20 编辑

😔学习了一整天,还是只学会把对应文件移至已建好的对应文件夹中

图片文件夹内文件命名
0001.jpg
0002.jpg
0003.jpg
0004.jpg
0005.jpg
0006.jpg
0007.jpg
0008.jpg
0009.jpg


Excel表格数据
对应文件夹名                    对应页号(文件顺序号)     对应总页数
0029-01-0001-0001               1                                                   1
0029-01-0001-0002               2                                                   1
0029-01-0001-0003               3                                                   2
0029-01-0001-0004               5                                                   1
0029-01-0001-0005               6                                                   3
0029-01-0001-0006               9                                                   1
…(文件夹名固定升序,每个文件夹对应页号及页数是变量,就是这里搞不懂😩)                       
请教一下师父们,如何将一个文件夹内的若干图片文件(按页号升序排列汇总)
根据Excel表格中各行数据(文件夹名及对应的页号或页数)
批量新建对应文件夹并移动对应页号(该页至下一文件夹前一页之间的文件数)
或页数(对应文件数)的图片文件至该文件夹中
希望有师父能解惑!不胜感激!一定认真记笔记!
作者: Batcher    时间: 2022-2-20 22:01

回复 1# Mizar


    以这些数据为例,处理之后的目录结构是怎样的?
作者: Mizar    时间: 2022-2-20 22:25

回复 2# Batcher


    处理过后图片文件夹内的所有图片文件会被移动至当前路径新建的各个文件目录(以Excel中的文件名列数据依次命名)之中。
处理过后的文件夹名     其中包含的图片文件
0029-01-0001-0001   (0001.jpg)
0029-01-0001-0002   (0002.jpg)
0029-01-0001-0003   (0003.jpg 0004.jpg)
0029-01-0001-0004   (0005.jpg)
0029-01-0001-0005   (0006.jpg 0007.jpg 0008.jpg)
0029-01-0001-0006   (0009.jpg)
作者: Mizar    时间: 2022-2-20 22:41

回复 2# Batcher


    Excel表格中的数据只作索引,目的是将对应数量的图片文件归至对应文件夹名的文件夹内。……
作者: Batcher    时间: 2022-2-21 11:02

回复 3# Mizar


test_1.bat 测试之前请备份好原始的文件和文件夹

请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "%~dp0"
  4. REM 设置图片所在的文件夹路径
  5. set "PictureFolder=D:\Test"
  6. set "n=0"
  7. set "PictureFile=0"
  8. for /f "tokens=1-3" %%a in ('type "1.txt"') do (
  9.     if not exist "%%a" (
  10.         md "%%a"
  11.     )
  12.     set /a n+=1
  13.     set "x=!n!"
  14.     set /a "y=%%b+%%c-1"
  15.     for /l %%i in (!x!,1,!y!) do (
  16.         set /a PictureFile=10000+%%i
  17.         move "%PictureFolder%\!PictureFile:~-4!.jpg" "%%a"
  18.     )
  19.     if !x! neq !y! (
  20.         set /a n=n+%%c-1
  21.     )
  22. )
复制代码

作者: Mizar    时间: 2022-2-21 19:23

感谢大佬,已完美解决




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