找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19173|回复: 3

[文件操作] 求助批处理根据日期创建文件夹并移动图片进去

[复制链接]
发表于 2022-10-16 09:21:26 | 显示全部楼层 |阅读模式
图片文件JPG 文件名是2022-10-2张三  想做一个批处理 根据日期建立文件夹并移动
想实现的效果是新建2022-10-2文件夹 并把2022-10-2张三  ,李四都移动进去
发表于 2022-10-16 10:40:16 | 显示全部楼层
  1. @if (0)==(0) echo off
  2. title  移动xxxx-xx-x文件.jpg、png、bmp、gif到xxxx-xx-x文件夹

  3. dir /b *.jpg *.png *.bmp *.gif | cscript -nologo -e:jscript "%~0"
  4. pause&exit/b
  5. @end

  6. fso = new ActiveXObject("Scripting.FileSystemObject");
  7. while (!WSH.StdIn.AtEndOfStream) {
  8.     line = WSH.StdIn.ReadLine();
  9.     f=fso.GetFile(line);
  10.     str  = line.match(/[^\d]*(\d+-\d+-\d+)[^\.]+\..+$/)[1];
  11.     if(!fso.FolderExists(str)) fso.CreateFolder(str);
  12.     f.Move(str + '\\');
  13. }
复制代码
发表于 2022-10-17 10:10:33 | 显示全部楼层
回复 1# l84603569


建议把月份和日期都补齐成2位,例如:2022-09-01
否则将来系统默认的排序可能会对你的操作带来不便。
发表于 2022-10-17 13:18:07 | 显示全部楼层
本帖最后由 aloha20200628 于 2022-10-18 11:18 编辑

还是先用纯P刀法练起...关键是从文件名头部提取不定长日期字段dF...再外套大循环是以防文件名尾部还有-分隔符...

  1. @echo off &setlocal enabledelayedexpansion
  2. for /f "delims=" %%F in ('dir/b/a-d 2022-*.jpg') do (
  3.         for /f "tokens=1-3 delims=-" %%1 in ("%%~F") do (
  4.                 set "s3=%%3" & set "s32=!s3:~1,1!"
  5.                 if !s32! geq 0 (if !s32! leq 9 (set "dF=%%1-%%2-!s3:~,2!") else (set "dF=%%1-%%2-!s3:~,1!"))
  6.                 if not exist !dF! md !dF!
  7.                 move /y "%%~F" !dF!>nul
  8.         )
  9. )
  10. endlocal&exit/b
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 14:30 , Processed in 0.013594 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表