标题: [文件管理] 批处理版照片整理器[2008-10-12] [打印本页]
作者: namejm 时间: 2007-11-5 21:35 标题: 批处理版照片整理器[2008-10-12]
____________________________版主提醒____________________________
为了避免影响技术讨论、提高看帖的舒适性,请大家不要在此帖下跟
无实质内容的口水帖,特别是纯顶、纯支持、纯感谢、路过之类的帖子,
管理人员将不定期清理此类回帖,请大家多参与讨论少灌水,与人方便,
终将给自己带来方便,谢谢合作。
________________________________________________________________
最近相机里的照片比较多,一般是连拍了好几天之后,才把相机里的照片一股脑放到硬盘里,并且是隔上一两个星期才整理一次。日子一长,照片就多了起来,都分不清是什么时候拍的了。网上搜索了很久,找到一款名为PhotosTool的软件,可以按拍摄日期来整理照片,正合我意,只可惜,这个不到1M的小软件,居然要另外安装20余M的.NET 2.0,一气之下,用P写了一个类似功能的脚本,发出来大家玩玩。
曾经有一段时间,单位资料室的电脑中毒很深,保存有数十G工作照片的分区也惨遭毒手——那可是我们单位几年工作的心血啊!资料室的人不敢轻举妄动,请了数据恢复公司的人把系统重装,把数据恢复到了移动硬盘上,结果,照片目录和修改日期全部错乱,对比较依靠照片修改日期来整理照片的我们而言,这无疑是一个沉重的打击。幸好有部分照片做了备份,而绝大部分的照片大致拍摄日期都有文字记录,资料室不得不动用最原始的方式,集中了一些人手,把照片一张一张点开,通过ACDSee查看exif信息里的拍摄日期来重新归类。如此整理了数月,才基本把照片放回正确的文件夹,但是,照片的修改日期仍然没法修正。本人翻遍网络,终于觅到一款能通过读取照片exif信息来对照片进行修改操作的命令行程序。经过本机的数十次测试,通过此命令行程序,完全可以把错乱的日期修改为照片的拍摄日期,于是,就有了照片整理器1.3版及其后续版本,具体功能可以查看脚本说明及更新历史。
经过将近1年时间的逐步完善,目前,此工具已经具备了按照片exif信息中的拍摄时间或者像素大小整理照片的功能,并可以把照片的修改时间改为照片的拍摄时间,方便后续整理工作,强烈推荐使用。
功能演示:
注意:必须与附件中的 jhead.exe 一起使用。- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- :: 作者: namejm
- :: 出处: bbs.bathome.net
- :: 编写日期: 2007-10-29~2008-10-12
- :: 测试环境: CMD@WinXP SP2
- :: 功能:按照exif信息归类照片
- :: 详细介绍:
- :: 本脚本通过获取jpg或jpeg照片的exif信息归类图片,具备按照分辨率大小和
- :: 日期两种方式归类,并自动重命名同名文件,同时统计已经处理的照片数量。另外,
- :: 可以选择使用如下功能:
- :: 1、批量修正当前目录下及所有子目录中jpg或jpeg照片的修改日期为拍摄日期;
- :: 2、能把所有子目录里的图片移动到父目录下并删除父目录下的所有空目录。
- :: 注意:
- :: 本脚本会读取照片的exif信息,在按日期整理照片时,自动修正照片的修改时间
- :: 为照片的拍摄时间,时间精确到秒;没有exif信息的jpg或jpeg图片,修改时间保持
- :: 不变,此时,按照像素大小整理照片的功能不可正常使用,按照日期归类照片时依据
- :: 的是照片的最后修改日期。
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- @echo off
- mode con lines=30
- set TT=照片整理器1.4
- color 1f
-
- :source
- title %TT% 当前目录:"%cd%"
- cls
- echo ╭─────────╮
- echo ╭────────┤选择要整理的文件夹├─────────╮
- echo │ ╰─────────╯ │
- echo │ │
- echo │ 本程序能把指定路径下的jpg格式照片按照分辨率 │
- echo │ │
- echo │ 大小或者拍摄日期整理到如下格式的文件夹中: │
- echo │ │
- echo │ 1 分辨率大小 (如 800×600) │
- echo │ │
- echo │ 2 年-月-日(如 2007-01-01) │
- echo │ │
- echo │ 3 月\日期(如 01\2007-01-01) │
- echo │ │
- echo │ 4 年\日期(如 2007\2007-01-01) │
- echo │ │
- echo │ 5 年\月\日期 (如 2007\01\2007-01-01) │
- echo │ │
- echo │ 注意:本脚本在按照日期归类照片时,会自动修正 │
- echo │ │
- echo │ 照片的创建时间为照片exif信息中的拍摄时间,精确到 │
- echo │ │
- echo │ 秒。没有exif信息的jpg图片,修改时间保持不变。 │
- echo │ │
- echo ╰────────────────────────────╯
- echo.
- echo 处理当前目录请直接回车 退出请按 0
- echo ──────────────────────────────
- set Source=
- set /p Source= 请把要处理的文件夹拖曳到本窗口:
- if not defined Source set "Source=%cd%"
- set "Source=%Source:"=%"
- if "%Source%"=="0" exit
- if not exist "%Source%\" goto source
- echo "%Source%"|find ":">nul 2>nul||set "Source=%cd%\%Source%"
- title %TT% 正在处理目录:"%Source:"=%"
-
- :fixtime
- cls
- echo ╭─────────╮
- echo ╭────────┤修正照片的修改日期├─────────╮
- echo │ ╰─────────╯ │
- echo │ │
- echo │ 照片的拍摄时间包含在exif信息中,反映在原始 │
- echo │ │
- echo │ 照片文件中,就是照片的修改时间。 │
- echo │ │
- echo │ 很不幸的是,照片的修改时间有时候并不是和exif │
- echo │ │
- echo │ 信息中的拍摄时间完全吻合,比如:照片被编辑后、数 │
- echo │ │
- echo │ 据恢复后等等,从而导致在查看照片的修改时间时,难 │
- echo │ │
- echo │ 以判定照片的拍摄时间,在一些需要按照拍摄时间把资 │
- echo │ │
- echo │ 料归档的场合,这样的情形无疑是一种灾难。 │
- echo │ │
- echo │ 本功能可以把指定目录及其所有子目录下的照片修 │
- echo │ │
- echo │ 改时间重新设置为照片的拍摄时间——只要照片的exif │
- echo │ │
- echo │ 信息没有被破坏掉。 │
- echo │ │
- echo ╰────────────────────────────╯
- echo.
- echo 返回上一步请按 1 退出请按 0
- echo ──────────────────────────────
- set FixTime=
- set /p FixTime= 是否修正照片的修改时间为拍摄时间(是=Y 否=其他任意键):
- if not defined FixTime goto movesub
- set "FixTime=%FixTime:"=%"
- if "%FixTime%"=="0" exit
- if "%FixTime%"=="1" goto source
- if /i "%FixTime%"=="y" (
- jhead -ft "%Source%\*.jp*g">nul 2>nul
- for /f "delims=" %%i in ('dir /ad /b /s "%Source%" 2^>nul') do (
- jhead -ft "%%i\*.jp*g">nul 2>nul
- title %TT% 正在处理目录:"%%i"
- )
- )
-
- :movesub
- cls
- echo.&echo.&echo.
- echo ╭─────────╮
- echo ╭────────┤ 预处理子目录 ├─────────╮
- echo │ ╰─────────╯ │
- echo │ │
- echo │ 如果当前目录的子目录中存在照片,而你需要把 │
- echo │ │
- echo │ 它们都放到父目录下,并删除父目录及其所有子目录下 │
- echo │ │
- echo │ 的空文件夹,那么,这个功能将是非常有用的。 │
- echo │ │
- echo │ 注意:此处的空文件夹是指删除父目录及其所有子 │
- echo │ │
- echo │ 目录下的Thumbs.db和*.ctg文件后形成的空文件夹,以 │
- echo │ │
- echo │ 及原本就存在的空文件夹。 │
- echo │ │
- echo ╰────────────────────────────╯
- echo.
- echo 返回上一步请按 1 退出请按 0
- echo ──────────────────────────────
- echo.
- set MoveSub=
- set /p MoveSub= 是否把照片移动到父目录下并删除空目录(是=Y 否=N):
- if not defined MoveSub goto movesub
- set "MoveSub=%MoveSub:"=%"
- if not defined MoveSub goto movesub
- if "%MoveSub%"=="0" exit
- if "%MoveSub%"=="1" goto source
- if /i "%MoveSub%"=="y" (
- set num=0
- set WhetherMove=M
- for /f "delims=" %%i in ('dir /ad /b /s "%Source%\" 2^>nul') do (
- for /f "delims=" %%j in ('dir /a-d /b /s "%%i\*.jp*g" 2^>nul') do (
- set route=&set postfix=
- setlocal enabledelayedexpansion
- call :re_name "%%j" "%Source%" "%%~nj" "%%~xj"
- move "%%j" "!Destination_1!">nul 2>nul
- endlocal
- set /a num+=1
- )
- title %TT% 正在处理文件:"%%i"
- )
- del /a /f /q /s "%Source%\Thumbs.db">nul 2>nul
- del /a /f /q /s "%Source%\*.ctg">nul 2>nul
- for /f "delims=" %%i in ('dir /ad /b /s "%Source%\"^|sort /r') do (
- rd /q "%%i" 2>nul&title %TT% 处理文件:"%%i"
- )
- title %TT% 正在处理的目录:"%Source%"
- echo.&call echo 共处理了 %%num%% 张照片,按任意键继续...
- pause>nul
- ) else if /i not "%MoveSub%"=="n" goto movesub
-
- :whethermove
- cls
- echo.
- echo ╭─────────╮
- echo ╭────────┤ 照片处理方式 ├─────────╮
- echo │ ╰─────────╯ │
- echo │ │
- echo │ 如果不想删除要处理文件夹下的照片,请选择复 │
- echo │ │
- echo │ 制功能;如果不保留原有的照片,请选择移动文件。 │
- echo │ │
- echo │ 注意:移动文件后,将会删除父目录下的所有空文 │
- echo │ │
- echo │ 件夹。此处的空文件夹是指删除父目录及其所有子目录 │
- echo │ │
- echo │ 下的Thumbs.db和*.ctg文件后形成的空文件夹,以及原 │
- echo │ │
- echo │ 本就存在的空文件夹。 │
- echo │ │
- echo │ 另:同名文件将作重命名处理,具体方式为:在文 │
- echo │ │
- echo │ 件名后添加 -序号 。比如重命名为 abc-1.jpg │
- echo │ │
- echo ╰────────────────────────────╯
- echo.
- echo 返回上一步请按 1 退出请按 0
- echo ──────────────────────────────
- echo.
- set WhetherMove=
- set /p WhetherMove= 移动文件还是复制文件(移动=M 复制=C):
- if not defined WhetherMove goto whethermove
- set "WhetherMove=%WhetherMove:"=%"
- if "%WhetherMove%"=="0" exit
- if "%WhetherMove%"=="1" goto movesub
- set flag=
- if /i "%WhetherMove%"=="M" set flag=1
- if /i "%WhetherMove%"=="C" set flag=1
- if not defined flag goto whethermove
- if /i "%MoveSub%"=="y" goto destination
-
- :whethersub
- echo.
- set WhetherSub=
- set /p WhetherSub= 是否处理子目录(是=Y 否=N):
- if not defined WhetherSub goto whethersub
- set "WhetherSub=%WhetherSub:"=%"
- if /i "%WhetherSub%"=="0" exit
- if /i "%WhetherSub%"=="1" goto whethermove
- if /i "%WhetherSub%"=="y" (
- set WhetherSub=/s
- goto destination
- )
- if /i "%WhetherSub%"=="n" (
- set WhetherSub=
- goto destination
- )
- goto whethersub
-
- :destination
- echo.
- title %TT% 程序所在目录:"%cd%"
- set Destination=
- set /p Destination= 请输入保存路径(保存在程序所在目录下请直接回车):
- if not defined Destination set "Destination=%cd%"
- set "Destination=%Destination:"=%"
- if "%Destination%"=="0" exit
- if "%Destination%"=="1" goto whethermove
- echo "%Destination%"|find ":">nul 2>nul||set "Destination=%cd%\%Destination%"
- echo "%Destination%"|find /i "%Source%">nul 2>nul&&(
- cls
- for /l %%i in (1,1,7) do echo.
- echo 为了不重复处理照片,不允许把保存路径设置到源文件所在目录下
- echo.&echo 请重新设置保存路径
- echo.&echo.
- goto destination
- )
- md "%Destination%" 2>nul
-
- :wise
- cls
- echo.&echo.&echo.&echo.&echo.
- echo ╭────────╮
- echo ╭─────────┤ 选择整理方式 ├─────────╮
- echo │ ╰────────╯ │
- echo │ │
- echo │ 有两种整理方式可供选择: │
- echo │ │
- echo │ a 按文件尺寸整理 (如800×600) │
- echo │ │
- echo │ b 按照拍摄日期整理(如2008-01-01) │
- echo │ │
- echo ╰────────────────────────────╯
- echo.
- echo 返回上一步请按 1 退出请按 0
- echo ──────────────────────────────
- echo.
- set Wise=
- set /p Wise= 请选择(a/b):
- if not defined Wise goto wise
- set "Wise=%Wise:"=%"
- if not defined Wise goto wise
- if "%Wise%"=="0" exit
- if "%Wise%"=="1" goto whethermove
- if /i "%Wise%"=="a" goto folders_dimesion
- if /i "%Wise%"=="b" goto folders_date
- goto wise
-
- :folders_dimesion
- cls
- for /l %%i in (1,1,10) do echo.
- echo 正在处理中,请稍候...
- set num=0
- call :dimesion "%Source%"
- if defined WhetherSub (
- for /f "delims=" %%i in ('dir /ad /b /s "%Source%" 2^>nul') do call :dimesion "%%i"
- )
- call :del_blank
- pause>nul&goto source
-
- :folders_date
- cls
- echo.&echo.&echo.
- echo ╭─────────╮
- echo ╭────────┤ 选择目录树格式 ├─────────╮
- echo │ ╰─────────╯ │
- echo │ │
- echo │ 在保存路径下,将建立以照片拍摄日期为名的文 │
- echo │ │
- echo │ 件夹,这些文件夹的目录树结构如下: │
- echo │ │
- echo │ a 年-月-日(如 2007-01-01) │
- echo │ │
- echo │ b 月\日期(如 01\2007-01-01) │
- echo │ │
- echo │ c 年\日期(如 2007\2007-01-01) │
- echo │ │
- echo │ d 年\月\日期 (如 2007\01\2007-01-01) │
- echo │ │
- echo ╰────────────────────────────╯
- echo.
- echo 返回上一步请按 1 退出请按 0
- echo ──────────────────────────────
- echo.
- set FoldersTree=
- set /p FoldersTree= 请选择(a/b/c/d):
- if not defined FoldersTree goto folders_date
- set "FoldersTree=%FoldersTree:"=%"
- if "%FoldersTree%"=="0" exit
- if "%FoldersTree%"=="1" goto whethermove
- set choice=
- for %%i in (a b c) do if /i "%FoldersTree%"=="%%i" set choice=1
- if not defined choice goto folders_date
- cls
- for /l %%i in (1,1,10) do echo.
- echo 正在处理中,请稍候...
- set num=0
- for /f "delims=" %%i in ('dir /a-d /b %WhetherSub% "%Source%\*.jp*g" 2^>nul') do (
- set /a num+=1
- jhead -ft "%%i">nul 2>nul
- if defined WhetherSub (
- for /f "delims=" %%j in ("%%i") do (
- set str=%%~tj
- set route=&set postfix=
- setlocal enabledelayedexpansion
- set str=!str:~0,10!
- set Y=!str:~0,4!&set M=!str:~5,2!&set D=!str:~8,2!
- if /i "%FoldersTree%"=="a" set Y=&set M=
- if /i "%FoldersTree%"=="b" set Y=
- if /i "%FoldersTree%"=="c" set M=
- md "%Destination%\!Y!\!M!\!str!" 2>nul
- if /i "%WhetherMove%"=="M" (
- call :re_name "%Source%\%%i" "%Destination%\!Y!\!M!\!str!" "%%~ni" "%%~xi"
- move "%%j" "!Destination_1!">nul 2>nul
- ) else (
- call :re_name "%Source%\%%i" "%Destination%\!Y!\!M!\!str!" "%%~ni" "%%~xi"
- copy "%%j" "!Destination_1!">nul 2>nul
- )
- title %TT% 正在处理文件:"%%i"
- endlocal
- )
- ) else (
- for /f "delims=" %%j in ("%Source%\%%i") do (
- set str=%%~tj
- set route=&set postfix=
- setlocal enabledelayedexpansion
- set str=!str:~0,10!
- set Y=!str:~0,4!&set M=!str:~5,2!&set D=!str:~8,2!
- if /i "%FoldersTree%"=="a" set Y=&set M=
- if /i "%FoldersTree%"=="b" set Y=
- if /i "%FoldersTree%"=="c" set M=
- md "%Destination%\!Y!\!M!\!str!" 2>nul
- if /i "%WhetherMove%"=="M" (
- call :re_name "%Source%\%%i" "%Destination%\!Y!\!M!\!str!" "%%~ni" "%%~xi"
- move "%%j" "!Destination_1!">nul 2>nul
- ) else (
- call :re_name "%Source%\%%i" "%Destination%\!Y!\!M!\!str!" "%%~ni" "%%~xi"
- copy "%%j" "!Destination_1!">nul 2>nul
- )
- title %TT% 正在处理文件:"%Source%\%%~nxi"
- endlocal
- )
- )
- )
- call :del_blank
- pause>nul&goto source
-
- :dimesion
- :: 按照像素值在目的路径下建立文件夹
- for /f "tokens=2,3*" %%i in ('jhead -cs nul "%~1\*.jp*g" 2^>nul^|findstr /i "name Resolution" 2^>nul') do (
- if "%%j"==":" (
- set "Source=%%k"&set "name=%%~nk"&set postfix=%%~xk
- title %TT% 正在处理文件:"%%k"
- ) else (
- setlocal enabledelayedexpansion
- set "dimesion=%%j%%k"
- set "dimesion=!dimesion:x =×!"
- set "Destination=%Destination%\!dimesion!"
- md "!Destination!" 2>nul
- set route=&set postfix=
- if /i "%WhetherMove%"=="M" (
- call :re_name "!Source!" "!Destination!" "!name!" "!postfix!"
- move "!Source!" "!Destination_1!">nul 2>nul
- ) else (
- call :re_name "!Source!" "!Destination!" "!name!" "!postfix!"
- copy "!Source!" "!Destination_1!">nul 2>nul
- )
- endlocal
- set /a num+=1
- )
- )
- goto :eof
-
- :re_name
- if not defined route (
- set "route=%~2"
- set "filename=%~3"
- set postfix=%~4
- )
- :re_name_loop
- if not exist "%route%\%filename%%-num%%postfix%" (
- set "Destination_1=%route%\%filename%%-num%%postfix%"
- set -num=&set _num=0
- goto :eof
- ) else (
- set /a _num+=1
- call set "-num=-%%_num%%"
- goto re_name_loop
- )
- goto :eof
-
- :del_blank
- if /i "%WhetherMove%"=="M" (
- del /a /f /q /s "%Source%\Thumbs.db">nul 2>nul
- del /a /f /q /s "%Source%\*.ctg">nul 2>nul
- for /f "delims=" %%i in ('dir /ad /b /s "%Source%\"^|sort /r') do (rd /q "%%i" 2>nul)
- rd /q "%Source%" 2>nul
- )
- title %TT% 当前目录:"%cd%"
- echo.&echo.&echo 共处理了 %num% 张照片,按任意键继续...
- goto :eof
复制代码
更新历史:- 更新历史:
- 2008.10.12
- 经 fastslz 提醒,增加了对jpeg格式的支持。
-
- 2008.9.3
- 添加了按照片分辨率大小归类的功能;为了避免重复整理,不再允许把整理后的
- 照片放到源文件所在目录下;精简了部分代码,使得效率有所提升;此为1.4版。
-
- 2008.8.29
- 修正了照片修改时间为拍摄时间时的一个错误:在处理其他路径下的照片时,不
- 能修改其他路径所有子目录下的照片修改时间,此错误是由于没有强制指定源文件路
- 径引起的。
-
- 2008.8.18
- 增添了通过读取照片exif信息修正照片的修改时间的功能,并且整理照片时,能
- 完全按照拍摄日期来归类照片,不再受照片最后修改时间的影响——前提是照片的
- exif信息没有丢失,代价是:使用了一个第三方命令行程序 jhead.exe。此为1.3版。
-
- 2008.4.15
- 修正了当程序位于A目录时不能把B目录下子目录中的照片移动到父目录的错误;
- 优化了一处处理流程;精简了少量代码;修改了部分提示信息;
-
- 2007.11.10
- 添加了按照 月\日期 格式整理照片的选项,调整了部分提示信息,此为1.2版
-
- 2007.11.7
- 对重名文件自动重命名,具体方式为在文件名后添加 -序号,例如:重命名
- 为 abc-1.jpg。此为1.1版。
-
- 2007.11.2
- 修正了不处理子目录时只创建文件夹而不复制/移动文件的错误,感谢somebody
- 的测试。
-
- 2007.11.1
- 美化了界面,修复了几处bug,增添了操作提示和移动照片后删除空文件夹的功能
-
- 2007.10.29
- 1.0 初具雏形
复制代码
jhead.exe下载地址:
http://bcn.bathome.net/s/tool/index.html?key=jhead
作者: somebody 时间: 2007-11-5 21:57
好多代码,正如你所说,看别人代码N辛苦.................
是有点作用,不过我没能用上的机会.........
能用上的朋友可有福气了......
纯支持!
作者: htysm 时间: 2007-11-6 08:01
不错,很喜欢,另外请教能不能写一个按照图片尺寸来分类的P处理,比如我只要1024x768的。WINDOWS的查找中没有这样的功能。
作者: namejm 时间: 2007-11-6 20:38
纯P是无法查询图片尺寸的,VBS应该可以办到,可惜我还不会。
作者: smilediao 时间: 2007-11-7 22:50
相比之下我的代码真是太简单了,我的知识真是太少了!哎,我还是回家面壁去吧!
作者: Frank 时间: 2008-1-5 15:45
晕,好强... 居然一出就是两个...CHM反编译器..
作者: snowhack 时间: 2008-1-13 01:20 标题: 呵呵 你这东西是抄袭的吧?
复制代码
你和这个批处理 异曲同工罢了
作者: youxi01 时间: 2008-1-13 08:32
哈哈,namejm就是你抄袭JM的嘛!!!哈哈哈哈
作者: namejm 时间: 2008-1-13 12:49
在批处理代码的作者信息中,一般而言,JM==namejm^_^。
作者: 封印 时间: 2008-3-22 00:15
看到那么多代码,我都不想学了。。。。郁闷
作者: 每年达 时间: 2008-6-12 12:41
太强了,写了多长时间啊?佩服。。
作者: 杨风 时间: 2008-6-21 15:27
你真强!顶你!
以后好好学习了
这样的东东还是要学习一下的
作者: Clark2505 时间: 2008-8-5 23:43
我一看到for和高级变量应用就晕,哪里有详细的讲解??
作者: 黑血柳丁 时间: 2008-8-7 17:18
我是新人,还希望板主多指教!我非常喜欢BAT,因为我觉得在哪面有无穷无尽的奥秘!
我现在是一名网络管理员,所以有很多不懂的地方,还希望大家的帮助。先谢谢了!
作者: namejm 时间: 2008-8-18 21:39 标题: 重大突破
2008.8.18
增添了通过读取照片exif信息修正照片的修改时间的功能,并且整理照片时,能完全按照拍摄日期来归类照片,不再受照片最后修改时间的影响——前提是照片的exif信息没有丢失,代价是:使用了一个第三方命令行程序 jhead.exe 。
作者: 523066680 时间: 2008-8-18 21:45
原帖由 snowhack 于 2008-1-13 01:20 发表
@echo off
:: Code by JM 2006-12-17 [email=CMD@XP]CMD@XP[/email]
...
namejm的原作更新版……谁敢说抄袭,抓出来。种番薯!
作者: SmallK 时间: 2008-8-26 10:58
其实人家说jm抄袭也是情有可原的啊,谁让jm的名字全是字母呢!我的就好多了~哈哈……
作者: namejm 时间: 2008-8-29 10:06 标题: 修正一处错误
2008.8.29
修正了照片修改时间为拍摄时间时的一个错误:在处理其他路径下的照片时,不
能修改其他路径所有子目录下的照片修改时间,此错误是由于没有强制指定源文件路
径引起的。请重新下载。
作者: namejm 时间: 2008-9-3 17:48 标题: 增添了按照分辨率大小整理照片的功能
考虑到一些摄影人士的特殊需求,增添了按照分辨率大小整理照片的功能。这次更新细节如下:
2008.9.3
添加了按照片分辨率大小归类的功能;为了避免重复整理,不再允许把整理后的
照片放到源文件所在目录下;精简了部分代码,使得效率有所提升;此为1.4版。
作者: sambodhi 时间: 2008-9-12 09:17
有个绿色小软叫NameExif也不错!
作者: wolongx 时间: 2008-9-13 00:47
在cnBeta上看到了,就过来了,确实是个很牛B的东东。
作者: vlongrong 时间: 2008-9-15 17:34
一直很喜欢批处理,这样的好贴怎能不顶,已经在用,很方便
作者: yyyxlxq 时间: 2008-9-21 21:21 标题: 怎么回事?
测 试 无 效 ? !
作者: namejm 时间: 2008-9-21 22:34
测试无效是什么样的状况?照片没有整理?整理出错?
请注意使用的条件:
1、必须是jpg格式的照片,不是jpg格式的图片无法整理,不是数码相机拍摄的照片整理会出错;
2、如果使用的是1.2之后的版本,必须和jhead.exe一起使用,并且,jhead.exe必须和批处理文件位于同一目录下。
作者: xunaco 时间: 2008-9-27 12:21 标题: 看代码有个小问题
请问这个代码里
set "Source=%Source:"=%"
是什么意思
作者: youaiwuzhui 时间: 2008-10-2 14:25
支持楼主,现在准备把自己电脑里的照片也整理一下子
作者: 受教者 时间: 2008-10-3 22:53
不加密的原创,支持
学习中。。。。
作者: 受教者 时间: 2008-10-3 23:03 标题: 回复 53楼 的帖子
假设
set source= " bbs"
set "Source=%Source:"=%"
运行后得出来就是
source为bbs
也就是set "Source=%Source:"=%把source中的"这个去掉
又如@echo off
set a=bbs.verybat.cn
echo 替换前的值: "%a%"
set var=%a:.=伤脑筋%
echo 替换后的值: "%var%"
pause
解释set var=%a:.=伤脑筋%
set命令 var变量名 字a是要进行字符替换的变量的值,"."为要替换的值,
"伤脑筋"为替换后的值!
执行后就会把变量%a%里面的"."全部替换为"伤脑筋"
作者: 406317577 时间: 2008-10-4 04:34
for命令太深奥了...其他的懂一点点
作者: yylogo 时间: 2008-10-7 23:31 标题: 难得的良师益友
昨天注册,你给我一瓢冷水,让我肃立。
今天参观,你给我一盏明灯,让我仰望。
明天的明天,希望有人超过你。青出于蓝而胜于蓝,愿带一个小徒弟吗?
作者: namejm 时间: 2008-10-7 23:57
呵呵,在论坛发过帖的很多会员,基本上都被管理层当头棒喝过——因为我们论坛的管理比较严格,对各种违规行为毫不手软,希望约束随心所欲乱发帖的现象,为论坛日后的搜索提供最大的方便,在这一点上,希望各位会员多多理解,N年以后,大家定能体会到严格管理的好处的。
青出于蓝而胜于蓝,这是永恒不变的真理,只要用心,超越前人是必然的,更何况本人最近诸事缠身,对批处理的投入已经大为减少,论坛里有望超越本人或已经超越本人的大有人在,“仰望”一词,折杀我也。批处理语法其实非常简单,只要掌握了for语句和变量延迟的用法,基本上可以做很多事情了,只要肯钻研,人人都可以自学成才,不必三磕九拜行拜师大礼,更何况,论坛里有一大批热心会员会及时帮助大家解决各种疑难,自学起来就更容易了。
作者: FORESTALL 时间: 2008-10-29 21:07
本来是到小众去找点软件的,结果兜兜转转来到这里。
首先看到的是老大的这款作品,幸福ing 。
作者: kennybao 时间: 2008-11-13 14:14
楼主很厉害,从CNDOS就知道了,现在这里发扬光大了。
作者: wtb2008 时间: 2008-11-25 21:42
谢谢,非常实用。在无忧看到了
作者: taotao 时间: 2008-12-21 10:11 标题: 太难了
这东西我不知道多久才能看懂
作者: codexman 时间: 2009-2-10 08:27
哈哈,namejm就是你抄袭JM的嘛!!!哈哈哈哈
看得出来.
作者: Batcher 时间: 2009-2-10 12:03 标题: 回复 37楼 的帖子
namajm和JM是同一个人
作者: kingjiege 时间: 2009-4-22 19:26 标题: 不错,呵呵
有创意啊,那就下载收藏了
作者: objsky 时间: 2009-5-7 17:17
刚刚到这里,觉得气氛不错,希望能学到东西,
作者: airpppp 时间: 2009-5-18 12:31
记得以前下过.今天搜遍了硬盘.什么时候不见了.再来支持下大大.
作者: wlsmen 时间: 2009-7-6 23:00
看不太懂哦3.
真是强大。
作者: gigiqb 时间: 2009-7-31 21:14
这也太强了吧,代码太多了
作者: peiran1988 时间: 2009-8-22 17:53 标题: 很强学习下
我正需要这些我这有很多照片都没整理不哦呢!
作者: maxdandy 时间: 2009-8-25 13:37 标题: 一点建议
使用了一下您的批处理版的照片整理器,觉得非常小巧高效,想请您再修改一下关于重名文件的处理,如果是EXIF信息是同一个时刻的重名文件,那么就只保留一个副本而不做加后缀保留更多副本的操作。因为我的照片很乱,有很多重复的备份,都加后缀重命名处理的话,很浪费而且重复照片太多。不知道能不能做这样的修改,真是太谢谢了!
作者: maxdandy 时间: 2009-8-25 14:24 标题: 补充一下
我的意思就是类似Photostool的那个重名文件的处理方式会好一些(有选择的余地)。
作者: namejm 时间: 2009-8-25 16:21
Re maxdandy:
很高兴我写的这个小脚本能帮上你的忙。
实际上,你这种情形已经涉及到重复文件或重名文件如何处理的问题,很有进一步深究的价值。
对于重复文件,打算通过检测md5值的方式提取出来,仅保留其中的一个而删除其余的文件;对不重复但是有可能重名的文件,提供覆盖或重命名的选项。这两步都放在照片的预处理过程中,不知道是否恰当,希望各位能提一些建议。
作者: canyuexiaolang 时间: 2009-8-26 08:21
5个字:真的好强悍~~~NB人物
作者: maxdandy 时间: 2009-8-26 09:16
原帖由 namejm 于 2009-8-25 16:21 发表
Re maxdandy:
很高兴我写的这个小脚本能帮上你的忙。
实际上,你这种情形已经涉及到重复文件或重名文件如何处理的问题,很有进一步深究的价值。
对于重复文件,打算通过检测md5值的方式提取出 ...
通过检测MD5确实是一种很彻底和精准的方案,我原来只想到比较EXIF信息,不得不佩服楼主思维的慎密。期待升级版本的发布。:)
作者: vinlam 时间: 2010-4-23 14:08
楼主辛苦了,学习。支持。
作者: Skybat 时间: 2010-7-1 17:48
先收藏 慢慢看!这是必须要经过的过程
作者: y2010t 时间: 2010-8-11 22:14
支持啊!
支持啊!
作者: hawke_911 时间: 2010-10-23 07:17
谢谢楼主分享这么好的东东!!
作者: rockets 时间: 2010-12-1 17:54
只要你用Win OS就可以把你想要的、繁琐的、累人的步骤简化 这就是bat的迷人之处
对于作者的想法 赞一个 !
作者: fane 时间: 2010-12-12 08:55
高人啊,这东西很实用的啊
作者: veek 时间: 2010-12-26 13:26
真是很强大的功能,感谢作者、
作者: imice 时间: 2011-3-12 09:45
我的神啊,楼主你太牛X了。
作者: liaobin 时间: 2011-3-31 21:17
LZ太强大了,收藏了,哈哈
作者: liusen 时间: 2011-4-10 21:26
15# namejm
好复杂啊......佩服
作者: gzdaren 时间: 2011-5-13 08:19
回帖是一种美德啊
作者: cggm 时间: 2011-5-19 13:04
我是新人,还希望板主多指教!我非常喜欢BAT,因为我觉得在哪面有无穷无尽的奥秘!
我现在是一名网络管理员,所以有很多不懂的地方,还希望大家的帮助。先谢谢了!
作者: Rasm 时间: 2011-6-25 18:20
10# 封印
那别学了,回家去把
作者: xslxslxsl 时间: 2011-10-26 22:38
代码好长啊,真是值得我去好好学习的了
作者: yzlsc 时间: 2012-3-10 13:18
LZ太牛了,望尘莫及。
作者: cjiabing 时间: 2012-3-13 22:23
回复 67# yzlsc
呵呵,学学中规中矩的代码写法,学学作者的思路和用功,其他的你一样会。
作者: ydfan8888 时间: 2012-5-5 11:30
强大的功能
作者: hells 时间: 2012-8-31 01:47
这么多代码一看就不想学了
作者: lf052006 时间: 2012-11-29 22:33
确实不错,不过对我来说还有很多书要看啊
作者: starifly 时间: 2013-1-30 16:00
请问版主,麻烦一个问题请教:要实现二级目录,即“2012”-“2012-10-01”这样的树结构,需要如何修改代码。另外,选项D貌似没用,在选择树状结构的时候。
作者: wenlishasha 时间: 2013-2-26 17:10
O(∩_∩)O谢谢!!!
作者: 林小七 时间: 2013-3-18 18:22
厉害呀----我还差的远,伤心了
作者: an410398183 时间: 2013-5-13 18:10
楼主是我学习的目标,虽然现在连for都不会用.
作者: 1036671525 时间: 2013-7-16 15:56
看看高手编的吧,望而生畏啊~~
作者: yefeng007520 时间: 2013-10-24 13:53
看帖学习,回帖支持。。。。。。。。。
作者: wulikaixin 时间: 2013-12-1 23:35
回复 1# namejm
老大,辛苦了。附件中的 jhead 2.82.rar怎么不能下载了
作者: tt-xb 时间: 2014-1-12 10:44
这个好用吗?先复制下来看看
作者: 慕夜蓝化 时间: 2014-3-4 17:27
又能浏览了。。。。。。。。
作者: wyx567 时间: 2014-7-27 16:50
哪里有详细的讲解??
作者: llto521 时间: 2014-10-17 09:50
还在学习基础篇,mark下,仔细研究一下
作者: shelluserwlb 时间: 2014-11-20 08:11
对于代码很多的程序,强烈要求加注释。 对每一部的具体作用作一下说明,这样无论对于自己或者对于看你代码的人都是一种方便。
作者: zhaiw99 时间: 2015-1-19 17:53
专程跑来感谢版主大大,我单位的照片,9W多张啊,刚开始不知道有这个软件,人工整了一个月还没弄完,后来搜到PHOTO TOOL, 不好用,还会自己删文件,自从用了这个,一天事件全搞定,严重感谢!!!!!!!!!!!!!!!!!!!!
作者: 懒得勤快 时间: 2015-2-13 10:39
好东西值得学习!
作者: rsrm8087 时间: 2015-4-3 10:49
这个是不是太多了 ,看起有点困难
作者: shujutong 时间: 2015-6-18 15:01
真是厉害啊 佩服
作者: caw 时间: 2015-8-19 17:04
厉害啊,看来得多多学习才得
作者: g4idrijs 时间: 2015-11-12 17:21
大赞一个,加油。
作者: testzh 时间: 2016-2-15 16:39
回复 1# namejm
谢谢
作者: citygun 时间: 2016-8-17 16:13
jhead 2.82.rar 的附件挂掉了,无法下载。
作者: go2cxgg 时间: 2016-10-3 01:32
很牛逼,很实用,汇报一个情况
我运行的时候,出现了一个bug,许多照片文件没能放到时间对应的目录里面去
试图修改,怕越改越乱。。。
作者: 344025466 时间: 2018-7-6 23:36
你真强!顶你!
以后好好学习了
这样的东东还是要学习一下的
作者: hfxiang 时间: 2022-6-21 14:28
今天用楼主推荐的“jhead.exe -ft” 整理wx图片,真的十分管用。感谢。
之后再研究一下楼主的脚本,将在有裨益......
作者: pudu 时间: 2022-7-31 14:30
新手,学习积累中。
作者: xx/xx 时间: 2022-10-6 19:26
ddddddddddddddddddddddddddd
作者: jzmaker 时间: 2024-7-24 23:33
这个是创建时间,不是拍摄时间
作者: jzmaker 时间: 2024-7-24 23:34
本帖最后由 jzmaker 于 2024-7-24 23:35 编辑
这个是创建时间,不是拍摄时间,是否可以做个选项,创建时间,修改时间,拍摄时间来进行区分
作者: 晴天再现 时间: 2024-7-25 13:57
回复 1# namejm 谢谢楼主,感谢回到00年代。。。
作者: okoooooo 时间: 2024-9-9 07:38
感谢楼主无私分享,这个工具太强大了!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |