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

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

图片文件JPG 文件名是2022-10-2张三  想做一个批处理 根据日期建立文件夹并移动
想实现的效果是新建2022-10-2文件夹 并把2022-10-2张三  ,李四都移动进去

  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. }
复制代码

TOP

回复 1# l84603569


建议把月份和日期都补齐成2位,例如:2022-09-01
否则将来系统默认的排序可能会对你的操作带来不便。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 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
复制代码

TOP

返回列表