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

[日期时间] 批处理如何将多张按日期时间命名的图片按时间顺序顺次每个文件夹放一张?

求助!如何将多张按日期时间命名的图片按时间顺序顺次每个文件夹放一张!
图2024-01-01 00-01-33.jpg
图2024-01-01 02-11-22.jpg
图2024-01-01 08-20-55.jpg
图2024-01-01 13-05-03.jpg
图2024-01-01 23-09-59.jpg
图2024-01-02 02-52-18.jpg

将多张按日期时间命名的图片按时间顺序顺次每个文件夹放一张!
新建文件夹(1)
新建文件夹(2)
新建文件夹(3)
新建文件夹(4)
新建文件夹(5)
新建文件夹(6)

批处理文件保存为ANSI编码:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
  4.     set /a n+=1
  5.     copy "%%i" "新建文件夹(!n!)\">nul 2>nul
  6. )
  7. pause
复制代码

TOP

回复 2# qixiaobin0715


    操作失败,变成改名了,大神再帮忙看看!

TOP

回复 1# wqj
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
  5.     set /a n+=1
  6.     md "新建文件夹(!n!)" 2>nul
  7.     copy "%%i" "新建文件夹(!n!)\"
  8. )
  9. pause
复制代码
测试代码之前请做好备份

TOP

回复 3# wqj
是你没有描述清楚,我以为文件夹你已经提前创建好了呢。看看4楼代码吧。

TOP

本帖最后由 wqj 于 2024-1-3 13:01 编辑

回复 5# qixiaobin0715


    抱歉,没表述清楚,弱弱的再问一下,上面文件夹的序号后如果添加任意字符串代码怎么修改?
新建文件夹(1)aaaa
新建文件夹(2)fggg
新建文件夹(3)rrrr
新建文件夹(4)jjjj
新建文件夹(5)bvvj

TOP

如果像你所举例子那样文件夹名序号后面都添加4个任意小写字母的话,自己测试一下:
  1. @echo off
  2. set Letters=a b c d e f g h i j k l m n o p q r s t u v w x y z
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
  5.     set /a n+=1
  6.     setlocal enabledelayedexpansion
  7.     for /l %%a in (1,1,4) do (
  8.         for %%b in (%Letters%) do (
  9.             set /a m+=1
  10.             set _!random!-!m!=%%b
  11.         )
  12.         for /f "skip=25 tokens=2 delims==" %%c in ('set _') do (
  13.             set str=!str!%%c
  14.         )
  15.     )
  16.     md "新建文件夹(!n!)!str!\" 2>nul
  17.     copy "%%i" "新建文件夹(!n!)!str!\">nul 2>nul
  18.     endlocal
  19. )
  20. pause
复制代码

TOP

本帖最后由 wqj 于 2024-1-3 19:38 编辑

文件夹已经存在,且每个文件夹名称编号后有4位无规律的数字,如何修改代码,大神再请教!
将多张按日期时间命名的图片按时间顺序顺次每个文件夹放一张!

新建文件夹(1)4567
新建文件夹(2)0235
新建文件夹(3)3362
新建文件夹(4)5578
新建文件夹(5)6590

TOP

本帖最后由 /zhqsystem/zhq 于 2024-1-3 20:24 编辑
  1. @Echo Off&Color 0e&SetLocal EnableDelayedExpansion
  2. for /f "delims=" %%i in ('dir/a-d/on/s/b ".\*.jpg"')do (
  3. set "#=%%~ni"&&set "#=!#:-=!"&&set "#=!#: =!"&for /l %%n in (1,1,4)do call:r %%n
  4. set/a "n+=1"&&set "$=!n!"&for /l %%n in (1,1,10)do set "$=0!$!"
  5. set "$=!$:~-10!"
  6. >>"%~dpn0回退.bat" (echo,md "%cd%"^&move "%cd%\文件夹!$!_!R_1!!R_2!!R_3!!R_4!\%%~nxi" "%%~dpi"^&rd "%cd%\文件夹!$!_!R_1!!R_2!!R_3!!R_4!")
  7. md ".\文件夹!$!_!R_1!!R_2!!R_3!!R_4!\"
  8. move "%%~fi" ".\文件夹!$!_!R_1!!R_2!!R_3!!R_4!\"
  9. )
  10. >>"%~dpn0回退.bat" echo,del/q "%~dpn0回退.bat"^&exit
  11. pause
  12. goto:eof
  13. :R
  14. set/a "r_%~1=%Random%%%10"
  15. goto:eof
复制代码
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

回复 9# /zhqsystem/zhq


    文件夹已经存在,不需要再新新建文件夹,只是现有的每个文件夹名称编号后有4位无规律的数字,如何修改代码,大神再请教!
将多张按日期时间命名的图片按时间顺序顺次每个文件夹放一张!

新建文件夹(1)4567
新建文件夹(2)0235
新建文件夹(3)3362
新建文件夹(4)5578
新建文件夹(5)6590
........一直到编号新建文件夹(100)6550,每个文件夹名称编号后有4位数字,每个文件夹内按顺序放一张图片。感谢大神帮忙,拜谢!

TOP

回复 10# wqj


资源管理器里面,10会排在2前面:
新建文件夹(10)xxxx
新建文件夹(2)xxxx

你考虑一下需要是否要变更为:
新建文件夹(001)xxxx
新建文件夹(002)xxxx
新建文件夹(...)xxxx
新建文件夹(010)xxxx
新建文件夹(...)xxxx
新建文件夹(100)xxxx
测试代码之前请做好备份

TOP

回复 11# ShowCode


    这样的可以吗:
新建文件夹(01)xxxx
新建文件夹(02)xxxx
新建文件夹(...)xxxx
新建文件夹(10)xxxx
新建文件夹(...)xxxx
新建文件夹(100)xxxx

TOP

回复 12# wqj
01--99是可以使用较为简化的代码处理的。
实际上就是把数字都统一变成相同个数,处理起来就要简单多了。

TOP

本帖最后由 qixiaobin0715 于 2024-1-4 10:56 编辑

回复 8# wqj
针对8楼的情况,这样试试看:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
  4.     set /a n+=1
  5.     for /f "delims=" %%j in ('dir /b /ad "新建文件夹(!n!)*"') do (
  6.         copy "%%i" "%%j\">nul 2>nul
  7.     )
  8. )
  9. pause
复制代码

TOP

回复 13# qixiaobin0715


       01-99如果这样的也可以,感谢大神帮忙改一下代码,拜谢!
新建文件夹(01)xxxx
新建文件夹(02)xxxx
新建文件夹(...)xxxx
新建文件夹(10)xxxx
新建文件夹(...)xxxx
新建文件夹(99)xxxx

TOP

返回列表