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

[文件操作] [已解决]批处理如何读取EXCEL信息给指定目录下的文件创建文件夹且按照序号归类?

本帖最后由 liaoguinan 于 2023-9-13 20:27 编辑

如何读取EXCEL信息给指定目录下的文件创建文件夹且按照序号归类

例如第一条就是创建1.1.1.1-1-1(小明)文件夹并把图片1-3移动到这个文件夹下
第二条就是创建1.1.1.1-1-4(小明)文件夹并把图片4移动到这个文件夹下以此类推
1

评分人数

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

回复 20# 77七


    太感谢了

TOP

满足14楼需要,也可以少写一个for循环。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "useback tokens=1-4* delims=," %%a in (`type "1.csv" ^& echo 1^,1000`) do (
  4. if defined n (
  5. set /a m=%%b-1
  6. md "!f!"
  7. for /l %%l in (!n!,1,!m!) do (
  8. set k=00%%l
  9. if exist "!k:~-3!.jpg" (
  10. move "!k:~-3!.jpg" "!f!"
  11. )
  12. )
  13. )
  14. set n=%%b
  15. set f=%%a%%b%%c%%d%%e
  16. )
  17. pause & exit
复制代码
bat小白,请多指教!谢谢!

TOP

本帖最后由 qixiaobin0715 于 2023-9-14 14:19 编辑

几经易稿,老觉得有问题,就这样吧。未测试,将批处理和1.csv文件放在图片文件夹中:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1-5 delims=," %%a in (1.csv) do (
  4.     set str=00%%b
  5.     set str=!str:~-3!
  6.     set #!str!=%%a%%b%%c%%d%%e
  7.     md "%%a%%b%%c%%d%%e"
  8. )
  9. for /f "delims=" %%i in ('dir /b /a-d ???.jpg') do (
  10.     if defined #%%~ni set Folder=!#%%~ni!
  11.     move "%%i" "!Folder!\"
  12. )
  13. pause
复制代码

TOP

回复 15# 77七


    找出问题在哪里了,我的EXCEL文件是打开着的,要关闭了就正常了

TOP

回复 15# 77七


    不理他了,感谢感谢

TOP

回复 13# liaoguinan


   估计你的桌面文件夹要求权限?比较特殊?会修改就自己再试试,隔着屏幕实在不知道咋回事了。比如管理员运行,或者先进入路径,或者用type 试下
bat小白,请多指教!谢谢!

TOP

本帖最后由 77七 于 2023-9-13 18:58 编辑

回复 14# liaoguinan


   
那就别修改csv文件了。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "useback tokens=1-5 delims=," %%a in ("1.csv") do (
  4. set /a n+=1
  5. set m=999
  6. call :1 !n!
  7. md "%%a%%b%%c%%d%%e"
  8. for /l %%l in (%%b,1,!m!) do (
  9. set k=00%%l
  10. if exist "!k:~-3!.jpg" (
  11. move "!k:~-3!.jpg" "%%a%%b%%c%%d%%e"
  12. )
  13. )
  14. )
  15. pause & exit
  16. :1
  17. for /f "useback skip=%~1 tokens=1-5 delims=," %%a in ("1.csv") do (
  18. set /a m=%%b-1
  19. exit /b
  20. )
  21. exit /b
复制代码
1

评分人数

bat小白,请多指教!谢谢!

TOP

本帖最后由 liaoguinan 于 2023-9-13 18:33 编辑

回复 12# 77七


    还有一个问题就是最后一个文件夹如果不是一张的话好像不会把其他的放进去呢?

比如最后一个文件夹是图片号10-15页码这种的话他只会把图片号10放进去

TOP

回复 12# 77七



TOP

回复 11# liaoguinan


   10楼代码,试了吗,找得到文件吗?
bat小白,请多指教!谢谢!

TOP

回复 10# 77七


    对的

TOP

回复 9# liaoguinan


  
  1. @echo off
  2. if not exist "C:\Users\Administrator\Desktop\1.csv" (
  3. echo 找不到文件
  4. )
  5. pushd "C:\Users\Administrator\Desktop"
  6. dir /b /s /a-d 1.csv
  7. pause
复制代码
确定1.csv在desktop下吗
bat小白,请多指教!谢谢!

TOP

回复 8# Batcher


还是一样

TOP

回复 4# 77七


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

TOP

返回列表