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

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

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

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

评分人数

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

回复 1# wqj


请给一个真实的例子说明一下你的需求吧,比如操作之前是怎样的,操作之后变成啥样?
如果需要上传文件,请用使用网盘。

如果需要上传截图,可以找个图床,例如:
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

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

需要的功能是,将bat所在目录(不含子文件夹)的 图片 ,按顺序依次一张或多张(自定义)的复制到所在目录的文件夹。 图片 格式是常见的格式:jpg,jpeg,png,bmp。

比如当前目录下有10个文件夹,20张 图片 :
1
2
3
4
5
6
7
8
9
10
。。。文件夹有10个文件夹
1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
。。。。。20张图片顺序为1-20


想要的结果是:
如果设置每个文件夹移动进去2张 图片 ,那么结果是,按名称的进行排序的命名
1-2.jpg复制进1文件夹
3-4.jpg复制进2文件夹
5-6.jpg复制进3文件夹

TOP

@echo off

set "AvgNum=2"

cd /d "%~dp0"

setlocal enabledelayedexpansion

for /f "delims=" %%i in ('dir /b /a-d ^| findstr /e /c:".jpg" /c:".jpeg" /c:".png" /c:".bmp"') do (
set fn=%%~ni
set /a "FolderCount=(!fn:~1!-1)/AvgNum+1"

if not exist "!FolderCount!" (
md "!FolderCount!"

)

move /y "%%i" "!FolderCount!\"
)

TOP

如何才能再实现设置每个文件夹移动进去2张 图片 ,那么结果是,按名称的进行逆序的命名
1-2.jpg复制进10文件夹
3-4.jpg复制进9文件夹
5-6.jpg复制进8文件夹
7-8.jpg复制进7文件夹
9-10.jpg复制进6文件夹

TOP

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

1
2
3
4
5
6
7
8
9
10
。。。文件夹有10个文件夹
1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
6.jpg
7.jpg
8.jpg
9.jpg
10.jpg
11.jpg
12.jpg
14.jpg
15.jpg
17.jpg
18.jpg
19.jpg
22.jpg
23.jpg
24.jpg
图片顺序不连续,仍按顺序不变每2张图片放1个文件夹。求大神帮忙看看。

TOP

[img][/img]

TOP

回复 6# wqj


图片顺序不连续V1.bat
  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 (1,1,100) do (
  9.         if !FileNum! lss !MaxNum! (
  10.             if exist "%%j.jpg" (
  11.                 move "%%j.jpg" "%%i\"
  12.                 set /a FileNum+=1
  13.             ) else if exist "%%j.jpeg" (
  14.                 move "%%j.jpeg" "%%i\"
  15.                 set /a FileNum+=1
  16.             ) else if exist "%%j.png" (
  17.                 move "%%j.png" "%%i\"
  18.                 set /a FileNum+=1
  19.             ) else if exist "%%j.bmp" (
  20.                 move "%%j.bmp" "%%i\"
  21.                 set /a FileNum+=1
  22.             )
  23.         )
  24.     )
  25. )
复制代码
测试代码之前请做好备份

TOP

回复 6# wqj


图片顺序不连续V2.bat
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. set "MaxNum=2"
  5. for /l %%i in (1,1,10) do (
  6.     call :HandleFolder %%i
  7. )
  8. :HandleFolder
  9. md "%1" 2>nul
  10. set "FileNum=0"
  11. for /l %%j in (1,1,100) do (
  12.     if !FileNum! lss !MaxNum! (
  13.         if exist "%%j.jpg" (
  14.             move "%%j.jpg" "%1\"
  15.             set /a FileNum+=1
  16.         ) else if exist "%%j.jpeg" (
  17.             move "%%j.jpeg" "%1\"
  18.             set /a FileNum+=1
  19.         ) else if exist "%%j.png" (
  20.             move "%%j.png" "%1\"
  21.             set /a FileNum+=1
  22.         ) else if exist "%%j.bmp" (
  23.             move "%%j.bmp" "%1\"
  24.             set /a FileNum+=1
  25.         )
  26.     ) else (
  27.         goto :eof
  28.     )
  29. )
复制代码
测试代码之前请做好备份

TOP

回复 9# ShowCode


    感谢帮助,完美实现!
弱弱的再问一下?文件名换成这样,代码怎么修改!
新 (1).jpg
新 (2).jpg
新 (3).jpg
新 (4).jpg
新 (5).jpg
新 (6).jpg
新 (7).jpg
新 (8).jpg
新 (9).jpg
新 (10).jpg

TOP

回复 10# wqj


图片顺序不连续V1.1.bat
  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 (1,1,100) do (
  9.         if !FileNum! lss !MaxNum! (
  10.             if exist "新 (%%j).jpg" (
  11.                 move "新 (%%j).jpg" "%%i\"
  12.                 set /a FileNum+=1
  13.             ) else if exist "新 (%%j).jpeg" (
  14.                 move "新 (%%j).jpeg" "%%i\"
  15.                 set /a FileNum+=1
  16.             ) else if exist "新 (%%j).png" (
  17.                 move "新 (%%j).png" "%%i\"
  18.                 set /a FileNum+=1
  19.             ) else if exist "新 (%%j).bmp" (
  20.                 move "新 (%%j).bmp" "%%i\"
  21.                 set /a FileNum+=1
  22.             )
  23.         )
  24.     )
  25. )
复制代码
测试代码之前请做好备份

TOP

回复 11# ShowCode

抱歉,我搞错了,是文件夹名改成这样怎么修改。再帮帮忙,万分感谢!
新建(1)-
新建 (2)-
新建 (3)-
新建(4)-
新建 (5)-
新建 (6)-
新建 (7)-
新建 (8)-
新建 (9)-
新建 (10)-

TOP

回复 12# wqj


图片顺序不连续V1.2.bat
  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 (1,1,100) do (
  9.         if !FileNum! lss !MaxNum! (
  10.             if exist "%%j.jpg" (
  11.                 move "%%j.jpg" "新建 (%%i)\"
  12.                 set /a FileNum+=1
  13.             ) else if exist "%%j.jpeg" (
  14.                 move "%%j.jpeg" "新建 (%%i)\"
  15.                 set /a FileNum+=1
  16.             ) else if exist "%%j.png" (
  17.                 move "%%j.png" "新建 (%%i)\"
  18.                 set /a FileNum+=1
  19.             ) else if exist "%%j.bmp" (
  20.                 move "%%j.bmp" "新建 (%%i)\"
  21.                 set /a FileNum+=1
  22.             )
  23.         )
  24.     )
  25. )
复制代码
测试代码之前请做好备份

TOP

如上代码每个文件夹移动进去2张 图片 ,怎样实现逆序放入文件夹?
1-2.jpg复制进文件夹10
3-4.jpg复制进文件夹9
5-6.jpg复制进文件夹8
7-8.jpg复制进文件夹7
9-10.jpg复制进文件夹6

TOP

回复 14# wqj


图片顺序不连续V1.3.bat
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. set "MaxNum=2"
  5. for /l %%i in (10,-1,1) do (
  6.     md "新建 (%%i)" 2>nul
  7.     set "FileNum=0"
  8.     for /l %%j in (1,1,100) do (
  9.         if !FileNum! lss !MaxNum! (
  10.             if exist "%%j.jpg" (
  11.                 move "%%j.jpg" "新建 (%%i)\"
  12.                 set /a FileNum+=1
  13.             ) else if exist "%%j.jpeg" (
  14.                 move "%%j.jpeg" "新建 (%%i)\"
  15.                 set /a FileNum+=1
  16.             ) else if exist "%%j.png" (
  17.                 move "%%j.png" "新建 (%%i)\"
  18.                 set /a FileNum+=1
  19.             ) else if exist "%%j.bmp" (
  20.                 move "%%j.bmp" "新建 (%%i)\"
  21.                 set /a FileNum+=1
  22.             )
  23.         )
  24.     )
  25. )
复制代码
测试代码之前请做好备份

TOP

返回列表