[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理利用Excel表能否以页号的方法批量移动图片及相应建立文件夹?

本帖最后由 tttoi2000 于 2023-9-5 20:17 编辑

有批图片
001.jpg~N为连续号
已作好Excel文件
第一层文件夹名                           第二层文件夹名                                   页号
XX00·000-WS·2019-Y-DQL        XX00·000-WS·2019-Y-DQL-0001             1
XX00·000-WS·2019-Y-DQL        XX00·000-WS·2019-Y-DQL-0002             3
XX00·000-WS·2019-Y-DQL        XX00·000-WS·2019-Y-DQL-0003             5
X:\XX00·000-WS·2019-Y-DQL
    |_XX00·000-WS·2019-Y-DQL-0001
       |_XX00·000-WS·2019-Y-DQL-0001.001.jpg
       |_XX00·000-WS·2019-Y-DQL-0001.002.jpg
    |_XX00·000-WS·2019-Y-DQL-0002
       |_XX00·000-WS·2019-Y-DQL-0002.003.jpg
       |_XX00·000-WS·2019-Y-DQL-0002.004.jpg
    |_XX00·000-WS·2019-Y-DQL-0003
       |_XX00·000-WS·2019-Y-DQL-0003.005.jpg
       |_XX00·000-WS·2019-Y-DQL-0003.006.jpg
       .....N
请大神帮忙,另外有时首个文件夹和最尾文件夹会出现单幅图片,能否实现以页号的方法批量移动图片及相应建立文件夹?
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 1# tttoi2000


如果页号是:
1
2
6
希望得到什么结果?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

第一个文件夹名为        XX00·000-WS·2019-Y-DQL-0001
第二个文件页号减下第一个文件页号则移动1张图片(2-1=1)
文件夹图片名为  XX00·000-WS·2019-Y-DQL-0001.001.jpg

第二个文件夹名为         XX00·000-WS·2019-Y-DQL-0002
第三个文件页号减下第二个文件页号则移动4张图片(6-2=4)
文件夹图片名为  XX00·000-WS·2019-Y-DQL-0001.002.jpg
                         XX00·000-WS·2019-Y-DQL-0001.003.jpg
                         XX00·000-WS·2019-Y-DQL-0001.004.jpg
                         XX00·000-WS·2019-Y-DQL-0001.005.jpg
如果尾个文件页号为6且后继无分件,则移动1张(或后继所有图片)  
文件夹名为        XX00·000-WS·2019-Y-DQL-0003
文件夹图片名为  XX00·000-WS·2019-Y-DQL-0001.006.jpg
~。。。。
                    不知表达清楚没?

TOP

回复 3# tttoi2000


1、Excel表格内容导出文本文件 MyPage.txt
第一层文件夹名                           第二层文件夹名                                   页号
XX00·000-WS·2019-Y-DQL        XX00·000-WS·2019-Y-DQL-0001             1
XX00·000-WS·2019-Y-DQL        XX00·000-WS·2019-Y-DQL-0002             2
XX00·000-WS·2019-Y-DQL        XX00·000-WS·2019-Y-DQL-0003             5

2、请参考Q-04和Q-05把test.bat文件和MyPage.txt文件都保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
  1. @echo off
  2. REM 设置图片所在的文件夹
  3. set "OldFolder=C:\Test\测试"
  4. REM 设置分页文件的文件名
  5. set "InputFile=MyPage.txt"
  6. cd /d "%~dp0"
  7. setlocal enabledelayedexpansion
  8. set "FileCount=1"
  9. for /f "skip=1 tokens=1-3" %%a in ('type "%InputFile%"') do (
  10.     if defined FolderL1 (
  11.         call :ExecMove !FolderL1! !FolderL2! %%c
  12.     )
  13.     set "FolderL1=%%a"
  14.     set "FolderL2=%%b"
  15. )
  16. md "!FolderL1!\!FolderL2!"
  17. move "%OldFolder%\*.jpg" "!FolderL1!\!FolderL2!"
  18. endlocal
  19. exit /b
  20. :ExecMove
  21. md "%1\%2"
  22. for %%i in ("%OldFolder%\*.jpg") do (
  23.     move "%%i" "%1\%2"
  24.     set /a FileCount+=1
  25.     if !FileCount! equ %3 (
  26.         exit /b
  27.     )
  28. )
复制代码
3、把test.bat文件和MyPage.txt文件放在同一个目录下,执行脚本test.bat
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

好像不行,图片都移到最外层文件夹了,且没改文件名及建立相应文件夹

TOP

回复 5# tttoi2000


请把你测试用的bat、txt、jpg打包上传我试试。
如果需要上传文件,可以用阿里云盘或百度网盘。

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 tttoi2000 于 2023-9-3 21:18 编辑

回复 6# Batcher
您好,大侠在吗,成功的分出我想要的内容来了,但是图片没加以文件夹名的前缀
[img] https://imgse.com/i/pPD3vuT[/img]

TOP

回复 7# tttoi2000


这个功能增加在20~24行:
  1. @echo off
  2. REM 设置图片所在的文件夹
  3. set "OldFolder=C:\Test\测试"
  4. REM 设置分页文件的文件名
  5. set "InputFile=MyPage.txt"
  6. cd /d "%~dp0"
  7. setlocal enabledelayedexpansion
  8. set "FileCount=1"
  9. for /f "skip=1 tokens=1-3" %%a in ('type "%InputFile%"') do (
  10.     if defined FolderL1 (
  11.         call :ExecMove !FolderL1! !FolderL2! %%c
  12.     )
  13.     set "FolderL1=%%a"
  14.     set "FolderL2=%%b"
  15. )
  16. md "!FolderL1!\!FolderL2!"
  17. move "%OldFolder%\*.jpg" "!FolderL1!\!FolderL2!"
  18. endlocal
  19. for /f "delims=" %%i in ('dir /b /s /a-d "%OldFolder%\*.jpg"') do (
  20.     for /f "delims=" %%j in ("%%i\..") do (
  21.         ren "%%i" "%%~nxj.%%~nxi"
  22.     )
  23. )
  24. exit /b
  25. :ExecMove
  26. md "%1\%2"
  27. for %%i in ("%OldFolder%\*.jpg") do (
  28.     move "%%i" "%1\%2"
  29.     set /a FileCount+=1
  30.     if !FileCount! equ %3 (
  31.         exit /b
  32.     )
  33. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

大侠有QQ号吗?图片还是没加上以文件夹名的前缀

TOP

回复 9# tttoi2000


请按照6楼的步骤操作。如果需要加入微信群或QQ群,请参考:
http://bbs.bathome.net/thread-3473-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

TOP

回复 11# tttoi2000


    8楼代码已更新,请再试试。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

辛苦大侠了,完美解决问题。

TOP

本帖最后由 cnnetstar 于 2023-9-7 10:30 编辑

回复 8# Batcher


    大佬好! 这个代码怎么修改一哈, 可以实现以下功能:
1. 当前是测试下直接是JPG文件, 假如测试下还有一级子夹, 即现在新建的第一层, JPG已经在相应子夹内.
2. 目前是MOVE, 可否实现COPY, 让原始图片状态保留着.

十分感谢!

TOP

回复 14# cnnetstar


    请按照6楼的方法把处理之前和处理之后的目录结构分别上传到网盘,我理解一下。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表