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

[文件操作] 【已解决】BAT代码怎么写,批量放置每4张图片到顺序文件夹?

本帖最后由 wqj 于 2024-1-1 18:28 编辑

批量放置每2张图片到顺序文件夹。
1

评分人数

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

本帖最后由 qixiaobin0715 于 2024-3-22 15:11 编辑

回复 33# wqj
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1-2 delims=-" %%i in ('dir /b /ad *-*') do (
  4.     set /a n=%%i*2
  5.     if exist "!n!.jpg" move "!n!.jpg" "%%i-%%j\"
  6.     set /a n-=1
  7.     if exist "!n!.jpg" move "!n!.jpg" "%%i-%%j\"
  8. )
  9. pause
复制代码

TOP

回复 33# wqj


  
(1)-4567
(2)-0235
1-2.jpg移动进文件夹1-××××


为什么隔了一楼文件夹名称格式就变了
翻看前贴
新0001.jpg
新0002.jpg


文件名格式也变了吗?
建议发个新贴子,完整描述下需求。
bat小白,请多指教!谢谢!

TOP

本帖最后由 wqj 于 2024-3-22 12:39 编辑

回复 32# qixiaobin0715


   
抱歉,没有表述清楚,求大神帮忙!拜谢!
每个文件夹移动进去2张 图片 ,如:
1-2.jpg移动进文件夹1-××××
3-4.jpg移动进文件夹2-××××
5-6.jpg移动进文件夹3-××××
7-8.jpg移动进文件夹4-××××
9-10.jpg移动进文件夹5-××××
类似200张图片,每2张放入一个文件夹,文件夹编号-后都有4位数字

TOP

不是你想象的那样,只是修改move "%%i" "!n!\",代码需推翻重来。
所以需要一次性把问题说清楚,发现你都是说一半留一半。给想帮你的人带来多余的无用功。

TOP

本帖最后由 wqj 于 2024-3-21 20:12 编辑

回复 30# qixiaobin0715

求教大神!文件夹名换成这样,代码怎么修改,每个文件夹名称的最后四位数字是固定的
(1)-4567
(2)-0235
(3)-3362
(4)-5578
(5)-6590

move "%%i" "!n!\" 这行代码怎么修改? 拜托大神!

TOP

回复 29# wqj
表述不清楚,要靠猜。是这样吗:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
  4.     set /a m+=1
  5.     set /a "n=(m-1)/2+1"
  6.     move "%%i" "!n!\"
  7. )
  8. pause
复制代码

TOP

回复 27# ShowCode


    大神! 24楼的代码,如果不用新建文件夹,就是文件夹已经存在,仍然两张照片放一个文件夹,怎么修改代码? 拜谢!

TOP

本帖最后由 wqj 于 2024-3-21 13:57 编辑

回复 26# wqj

TOP

回复 26# wqj


    哪个文件夹已经存在?那种情况下24楼的代码结果和你希望的结果有什么差异?
测试代码之前请做好备份

TOP

回复 24# ShowCode


    大神,上述代码,如果文件夹已经存在,怎么修改代码? 拜谢!

TOP

回复 24# ShowCode


    完美实现,对大神五体投地拜谢!

TOP

回复 23# wqj
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. set "MaxNum=2"
  5. for /l %%i in (1,1,10) do (
  6.     md "%%i" 2>nul
  7.     set "FileNum=0"
  8.     for /l %%j in (10001,1,10999) do (
  9.         set "FileSeq=%%j"
  10.         set "FileSeq=!FileSeq:~-4!"
  11.         if !FileNum! lss !MaxNum! (
  12.             if exist "新!FileSeq!.jpg" (
  13.                 move "新!FileSeq!.jpg" "%%i\"
  14.                 set /a FileNum+=1
  15.             ) else if exist "新!FileSeq!.jpeg" (
  16.                 move "新!FileSeq!.jpeg" "%%i\"
  17.                 set /a FileNum+=1
  18.             ) else if exist "新!FileSeq!.png" (
  19.                 move "新!FileSeq!.png" "%%i\"
  20.                 set /a FileNum+=1
  21.             ) else if exist "新!FileSeq!.bmp" (
  22.                 move "新!FileSeq!.bmp" "%%i\"
  23.                 set /a FileNum+=1
  24.             )
  25.         )
  26.     )
  27. )
复制代码
1

评分人数

测试代码之前请做好备份

TOP

回复 21# ShowCode


  将类似于代码中这样的文件名 "新 (%%j).jpg"更换成下面这样
新0001.jpg
新0002.jpg
新0003.jpg
新0004.jpg
新0025.jpg
新0029.jpg
新0058.jpg
新0112.jpg
新0113.jpg
最小的文件名编号 新0001.jpg   最大的文件名编号 新0999.jpg   共上千张图片,每两个放一个文件夹,怎么在文件名序号前加0不会修改,没表述清楚,抱歉!

TOP

本帖最后由 wqj 于 2023-12-12 10:44 编辑

回复 20# wqj


    将类似于代码中这样的文件名 "新 (%%j).jpg"更换成下面这样
新0001.jpg
新0002.jpg
新0003.jpg
新0004.jpg
新0025.jpg
新0029.jpg
新0058.jpg
新0112.jpg
新0113.jpg
最小的文件名编号 新0001.jpg   最大的文件名编号 新0999.jpg   共上千张图片,每两个放一个文件夹,怎么在文件名序号前加0不会修改,没表述清楚,抱歉!

TOP

返回列表