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

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

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

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

评分人数

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

本帖最后由 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

回复 9# ShowCode


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

TOP

回复 11# ShowCode

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

TOP

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

TOP

已解决,感谢大神帮助!

TOP

回复 15# ShowCode


    拜谢大神!

TOP

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

回复 11# ShowCode


    大神麻烦再请教一下?文件名换成这样,您写的代码怎么修改!
新0001.jpg
新0002.jpg
新0003.jpg
新0004.jpg
新0025.jpg
新0029.jpg
新0058.jpg
新0112.jpg
新0113.jpg
新0116.jpg
文件名始终保留4位数字
@echo off
cd /d "%~dp0"
setlocal enabledelayedexpansion
set "MaxNum=2"
for /l %%i in (1,1,10) do (
    md "%%i" 2>nul
    set "FileNum=0"
    for /l %%j in (1,1,100) do (
        if !FileNum! lss !MaxNum! (
            if exist "新 (%%j).jpg" (
                move "新 (%%j).jpg" "%%i\"
                set /a FileNum+=1
            ) else if exist "新 (%%j).jpeg" (
                move "新 (%%j).jpeg" "%%i\"
                set /a FileNum+=1
            ) else if exist "新 (%%j).png" (
                move "新 (%%j).png" "%%i\"
                set /a FileNum+=1
            ) else if exist "新 (%%j).bmp" (
                move "新 (%%j).bmp" "%%i\"
                set /a FileNum+=1
            )
        )
    )
)

TOP

回复 9# ShowCode


       大神麻烦再请教一下?文件名换成这样,您写的代码怎么修改!
新0001.jpg
新0002.jpg
新0003.jpg
新0004.jpg
新0025.jpg
新0029.jpg
新0058.jpg
新0112.jpg
新0113.jpg
新0116.jpg
文件名始终保留4位数字
@echo off
cd /d "%~dp0"
setlocal enabledelayedexpansion
set "MaxNum=2"
for /l %%i in (1,1,10) do (
    md "%%i" 2>nul
    set "FileNum=0"
    for /l %%j in (1,1,100) do (
        if !FileNum! lss !MaxNum! (
            if exist "新 (%%j).jpg" (
                move "新 (%%j).jpg" "%%i\"
                set /a FileNum+=1
            ) else if exist "新 (%%j).jpeg" (
                move "新 (%%j).jpeg" "%%i\"
                set /a FileNum+=1
            ) else if exist "新 (%%j).png" (
                move "新 (%%j).png" "%%i\"
                set /a FileNum+=1
            ) else if exist "新 (%%j).bmp" (
                move "新 (%%j).bmp" "%%i\"
                set /a FileNum+=1
            )
        )
    )
)

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

回复 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

返回列表