作者lcwmax (阿里山神木村拓哉)
看板EZsoft
标题Re: [请益] 档案分类软体
时间Sat Jun 14 23:28:54 2008
借标题问一下,我也有类似的需求
我有一推档案是以时间为档名
例如 20080612_211726.jpg
20080612_232210.jpg
20080613_010543.jpg
想自动建立资料夹来分类,例如建立资料夹 20080612 来放 6/12 的档案
20080613 来放 6/13 的档案
我尝试写两个批次档来完成这项工作
以 20080612_211726.jpg 为例子,放在批次档同一目录
第一个 start.bat
---------------------------
@echo off
move2sub *.jpg 执行 move2sub.bat 目标档 *.jpg
---------------------------
第二个: move2sub.bat
---------------------------
for %%1 in (%*) do (
set filename=%%~n1 设变数 filename = 20080612_211726
md %filename:~0,8% 建立资料夹 20080612
move %%~nx1 %filename:~0,8%\ 将 20080612_211726.jpg 移到 20080612\ 下
)
---------------------------
单档测试都成功,但放进 for 之後就会有问题
我怀疑是 for 的用法以及 set 的用法不对
因为我都是从网路以及 Winodws 说明乱搜寻乱拼凑出来的
请教熟悉批次档的板友能稍微指点一下吗?
顺便问 可否将两个 bat 写成一个就可以呢?
感谢~
--
【帝江】
有神焉,其状如黄囊,赤如丹火,六足四翼,浑敦无面目,是识歌舞,实为帝江也。
http://aycu31.webshots.com/image/14150/2006037017327500849_rs.jpg
原来是个会唱歌的的屁股
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.5.59
※ 编辑: lcwmax 来自: 140.112.5.59 (06/14 23:30)
1F:推 junorn:for 为圈内要用变数的话你要开延迟环境变数延伸 06/14 23:36
2F:→ junorn: 回 06/14 23:36
3F:→ lcwmax:感谢楼上 终於成功了 06/15 00:29
第二个: move2sub.bat 改成这样
---------------------------
setlocal enabledelayedexpansion
for %%1 in (%*) do (
set filename=%%~n1 设变数 filename = 20080612_211726
md !filename:~0,8! 建立资料夹 20080612
move %%~nx1 !filename:~0,8!\ 将 20080612_211726.jpg 移到 20080612\ 下
)
---------------------------
其实原理好像不太懂 反正终於可以用了 T-T
※ 编辑: lcwmax 来自: 140.112.5.59 (06/15 00:32)