返回列表 发帖
已解决,感谢大神帮助!

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

回复 18# wqj


    请按照2楼的步骤操作
测试代码之前请做好备份

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

回复 20# wqj


我写的代码不需要你重复的发出来。因为这对于我理解你的需求没有任何帮助。
我只需要知道需求是怎样。哪里的文件名换成这样?移动之前还是移动之后?
文字加截图描述清楚你的需求就够了。
具体步骤请看2楼。
测试代码之前请做好备份

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

回复 23# wqj
@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 (10001,1,10999) do (
        set "FileSeq=%%j"
        set "FileSeq=!FileSeq:~-4!"
        if !FileNum! lss !MaxNum! (
            if exist "新!FileSeq!.jpg" (
                move "新!FileSeq!.jpg" "%%i\"
                set /a FileNum+=1
            ) else if exist "新!FileSeq!.jpeg" (
                move "新!FileSeq!.jpeg" "%%i\"
                set /a FileNum+=1
            ) else if exist "新!FileSeq!.png" (
                move "新!FileSeq!.png" "%%i\"
                set /a FileNum+=1
            ) else if exist "新!FileSeq!.bmp" (
                move "新!FileSeq!.bmp" "%%i\"
                set /a FileNum+=1
            )
        )
    )
)COPY
1

评分人数

测试代码之前请做好备份

TOP

回复 24# ShowCode


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

TOP

回复 24# ShowCode


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

TOP

回复 26# wqj


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

TOP

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

回复 26# wqj

TOP

回复 27# ShowCode


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

TOP

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

TOP

返回列表