标题: [文件操作] 求助批处理根据日期创建文件夹并移动图片进去 [打印本页]
作者: l84603569 时间: 2022-10-16 09:21 标题: 求助批处理根据日期创建文件夹并移动图片进去
图片文件JPG 文件名是2022-10-2张三 想做一个批处理 根据日期建立文件夹并移动
想实现的效果是新建2022-10-2文件夹 并把2022-10-2张三 ,李四都移动进去
作者: xp3000 时间: 2022-10-16 10:40
- @if (0)==(0) echo off
- title 移动xxxx-xx-x文件.jpg、png、bmp、gif到xxxx-xx-x文件夹
-
- dir /b *.jpg *.png *.bmp *.gif | cscript -nologo -e:jscript "%~0"
- pause&exit/b
- @end
-
- fso = new ActiveXObject("Scripting.FileSystemObject");
- while (!WSH.StdIn.AtEndOfStream) {
- line = WSH.StdIn.ReadLine();
- f=fso.GetFile(line);
- str = line.match(/[^\d]*(\d+-\d+-\d+)[^\.]+\..+$/)[1];
- if(!fso.FolderExists(str)) fso.CreateFolder(str);
- f.Move(str + '\\');
- }
复制代码
作者: Batcher 时间: 2022-10-17 10:10
回复 1# l84603569
建议把月份和日期都补齐成2位,例如:2022-09-01
否则将来系统默认的排序可能会对你的操作带来不便。
作者: aloha20200628 时间: 2022-10-17 13:18
本帖最后由 aloha20200628 于 2022-10-18 11:18 编辑
还是先用纯P刀法练起...关键是从文件名头部提取不定长日期字段dF...再外套大循环是以防文件名尾部还有-分隔符...- @echo off &setlocal enabledelayedexpansion
- for /f "delims=" %%F in ('dir/b/a-d 2022-*.jpg') do (
- for /f "tokens=1-3 delims=-" %%1 in ("%%~F") do (
- set "s3=%%3" & set "s32=!s3:~1,1!"
- if !s32! geq 0 (if !s32! leq 9 (set "dF=%%1-%%2-!s3:~,2!") else (set "dF=%%1-%%2-!s3:~,1!"))
- if not exist !dF! md !dF!
- move /y "%%~F" !dF!>nul
- )
- )
- endlocal&exit/b
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |