Board logo

标题: [文件操作] 批处理如何将同一日期的照片移动到新建的那个日期的文件夹? [打印本页]

作者: shano    时间: 2011-11-27 20:41     标题: 批处理如何将同一日期的照片移动到新建的那个日期的文件夹?

一个个检查时间,创建新文件夹+移动很繁琐,不知道有没有批处理的好法子?
谢谢诸位大大帮忙!
作者: yangfengoo    时间: 2011-11-27 21:05

坐等版主!!!
作者: jellyhk    时间: 2011-11-28 10:28

是说归类吗?
例如把2011-11-11创建的图片放到20111111的文件夹里!
作者: jellyhk    时间: 2011-11-28 10:45

  1. @echo off
  2. for /f %%a in ('dir /b *.jpg') do (   
  3.     for /f %%b in ("%%~ta") do (
  4.        md %%b
  5.            move %%a %%b
  6.      )
  7. )
  8. pause
复制代码
放到同一目录!可以用!
不知道合适不?
作者: shano    时间: 2011-11-28 12:17

感谢jellyhk,
可是不知道为何提示
the syntax of the command is incorrect.
the system cannot find the path specified.
另外,想学习下,%%~ta这个指令是不是文件日期的前两位?比如11月28号,就是11,而不是28?
作者: FOR    时间: 2011-11-28 12:59

“同一日期的照片”是指什么?
照片是以日期命名的?
还是照片在电脑里的创建时间?
还是照片的拍摄时间?
作者: jellyhk    时间: 2011-11-28 13:21

感谢jellyhk,
可是不知道为何提示
the syntax of the command is incorrect.
the system cannot find th ...
shano 发表于 2011-11-28 12:17

你应该没成功吧!2段英文说的!是没放到同目录吗?
另:%%~ta 是日期!你可以自己去测试下!%%~ta是当前for里面变量%%a的日期,你用
  1. echo %~t0
  2. pause
复制代码
这段代码的变量%0是表示自己!加~t是看日期!例如2011-11-11 11:12这种形式!所以用for /f 把他分割为2011-11-11不要后面
作者: shano    时间: 2011-11-28 13:40

时间:是指拍摄时间,比如照片名称DSC00123.jpg,拍摄时间是11月26日1:30分。我想把所有1126拍摄的照片通过批处理移动到同一个文件夹a里面,这个a需要自动创建并命名为1126。
另,jellyhk大大,确实没成功
放到了同一个文件夹里面,%%~ta的话读取的是月还是日?1111比较特殊,如果用1126,是11而不是26?
dir /b是11,26,2012的格式....
作者: FOR    时间: 2011-11-28 20:48

读取照片拍摄时间似乎需要第三方工具支持吧。
作者: jellyhk    时间: 2011-11-29 10:25

时间:是指拍摄时间,比如照片名称DSC00123.jpg,拍摄时间是11月26日1:30分。我想把所有1126拍摄的照片通过 ...
shano 发表于 2011-11-28 13:40

Q1:
我不知道你的拍摄时间是文件中3个时间的哪个时间!创建时间?修改时间?访问时间!你的文件的时间是一样的吗?如果不是一样的你是要读取哪个时间?
   创建时间是说你把文件放到电脑里的时间!
   访问时间是最后一次访问的时间!
   修改时间是文件最近一次进行修改并保存的时间(如果是下的别人电脑就会时间比创建时间小)
Q2:
假设你的文件是2011-11-26拍的!是存到1126?11-26?2011-11-26?

Q3:
把你的运行图用qq截下来!还有你的文件是不是放一起的!图
作者: FOR    时间: 2011-11-29 13:56

本帖最后由 FOR 于 2011-11-29 13:58 编辑

修改时间应该就是拍摄时间(如果照片未经过后期处理的话),所以4楼代码应该是可行的,楼主运行不成功,是不是因为文件名含有空格呢?
最好给4楼代码这两句加上引号就更完美了
md "%%b"
move "%%a" "%%b"

话说现在论坛很不爽,登陆成功后,登录框不消失,需要刷新,回帖也是,停留在回帖页面,必须刷新才行。
作者: Batcher    时间: 2011-11-29 14:12

回复 11# FOR


你用的什么浏览器?哪个版本?
作者: FOR    时间: 2011-11-29 15:05

360安全浏览器 4.1 beta版 文件版本 4.1.0.3
系统 windows7 旗舰版
作者: FOR    时间: 2011-11-29 15:30

果然是浏览器问题,换了个低版本的反而好了。
作者: shano    时间: 2011-11-29 17:49

本帖最后由 shano 于 2011-11-29 17:51 编辑

修改时间应该就是拍摄时间(如果照片未经过后期处理的话),所以4楼代码应该是可行的,楼主运行不成功,是不是因为文件名含有空格呢?
最好给4楼代码这两句加上引号就更完美了
md "%%b"
move "%%a" "%%b"

话说现在论坛很不爽,登陆成功后,登录框不消失,需要刷新,回帖也是,停留在回帖页面,必须刷新才行。
正解!
md 一定要加“”


另,比如07-24-11年拍摄的文件,经过批处理后被分到了
07的文件夹中的24文件夹中的2011文件夹里 :C:\07\24\2011
能不能变到一个文件夹:0724\ 下



Q1:
我不知道你的拍摄时间是文件中3个时间的哪个时间!创建时间?修改时间?访问时间!你的文件的时间是一样的吗?如果不是一样的你是要读取哪个时间?
   创建时间是说你把文件放到电脑里的时间!
   访问时间是最后一次访问的时间!
   修改时间是文件最近一次进行修改并保存的时间(如果是下的别人电脑就会时间比创建时间小)

如上,我没修改文件,所以就是最近修改时间

Q2:
假设你的文件是2011-11-26拍的!是存到1126?11-26?2011-11-26?

存到1126下

Q3:
把你的运行图用qq截下来!还有你的文件是不是放一起的!图


经检验就是
md ""的目标要加引号,否则运行结果就是那两行提示。
其他都非常正确!
再次谢谢两位大大及时的回复!

作者: shano    时间: 2011-12-1 09:51

/f的指令可不可以最终分成1126不要2011?哪位大大能再解释一下?

//
假设你的文件是2011-11-26拍的!是存到1126?11-26?2011-11-26?
存到1126下
//




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2