批处理万年历
使用Photoshop批量去除数码照片的时间日期

使用Photoshop批量去除数码照片的时间日期曾经有一个数码照相机摆在我的面前,我把它拿去照相,等到把所有照片下载到电脑的时候我才追悔莫及,因为每一张照片都被人为地刻上了岁月的痕迹――时间日期。
如果是作为犯罪证据的话,照相机的这个功能显得难能可贵,可是把照片作为艺术品来欣赏却会为这些内容而感到不安。
如果上天能给我再来一次的机会的话,我会把显示时间和日期功能设置为“无”。
可是历史是不能倒退的了。
怎么办呢?用图像处理软件修改是最后一条路了,要去除这个日期只得把Photoshop请出来了。
可是我照了几百张啦,难不成每一张都要用Photoshop修理一番么?那不得把我折腾死。
仔细一想,终于让我想出了一个好办法:批处理。
因为照相机自动添加的日期在照片中的位置是固定的,那么就是说我们对每一张图片处理的动作都是重复的了,只要把第一张图片去除日期的操作录制成一个动作的话,那么不就省事了吗。
具体实现步骤如下:首先新建两个文件夹“源图片”(将从数码相册下载的照片复制到此位置,如“D:\源图片”)和“去掉日期后图片”(执行批处理后Photoshop放置图片的文件夹,,如“D:\去掉日期后图片”)。
一、动作面板介绍:为了使大家容易理解下一步的操作,我们还是先来熟悉一下“动作”面板。
如果你没有改动Photoshop的默认设置的话,应该可以在工作区的右方看到下面这样的面板(见图1),也就是“历史记录/动作”面板(如果没有出现,请选择菜单项“窗口/动作”,快捷键为“F9”),见图1,其中:(图1)A:控制是否运行该目录下的所有命令,有“√”代表允许打开。
B:控制是否打开该目录下的所有断点。
C:单击弹出“动作”控制面板的菜单。
D:程序内置记录的动作。
E:停止正在运行或者正在录制的动作。
F:开始录制动作。
G:运行选中的动作。
H:创建一个新的序列。
I:建立一个新的动作。
J:删除选中的记录。
动作面板记录的动作放置和Windows的资源管理器结构大致相同,序列就像一个文件夹,动作就是里面的文件。
六种批处理删除指定天数日期之前的文件方案

>>"%temp%\BackupDate.vbs" echo WScript.Echo WshShell.RegRead ("HKEY_CURRENT_USER\Control Panel\International\sShortDate")
for /f %%a in ('cscript /nologo "%temp%\BackupDate.vbs"') do (
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
endlocal&set %4=%j%&goto :EOF
::演示:删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例调用了 Ritchie Lawrence 的日期函数进行日期计算
::日期转换的核心算法请参考/thread-3056-1-1.html
::本例为兼容不同的日期格式,调用reg命令(XP系统自带)统一设置日期格式,
::处理完毕之后再把日期格式恢复成原来的状态。
rem 指定待删除文件的存放路径
set SrcDir=C:\Test\BatHome
rem 指定天数
set DaysAgo=1
for /f "delims=" %%a in ('reg query "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate') do (
自己动手制作Excel万年历

自己动手制作Excel万年历自己动手制作Excel万年历在网上看到别人用Excel制作的万年历非常精美,于是自己动手,跟着学习,自己制作一了属于自己的“万年历”;现在把制作过程和大家一起分享!首先还是看看我制作的“万年历”的最终效果:这个万年历可以显示当月的月历,还可以随意查阅任何日期所属的月历,非常方便,一起来试试吧!第一步:启动Excel2003,新建一个工作表,取名保存(如万年历.xls);并在相应的单元格中输入如图①所示的内容。
其中:在I1、I2单元格分别输入1900、1901,然后同时选中I1、I2单元格,用“填充柄”向下拖拉至I151单元格,即输入1900―2050年份序列;同样的方法,在J1至J12单元格中输入1―12月份序列。
第二步:同时选中B1、C1、D1单元格,单击“格式”工具栏上的“合并及居中”按钮,将其合并成一个单元格,并输入公式=TODAY()后回车;再次选中B1(合并后的)单元格,执行“格式→单元格→数字→分类→日期”,在右侧“类型”下面选中“二○○一年三月十四日”选项,“确定”退出,将日期设置成中文形式。
(如图②)注:TODAY()函数用于提取当前系统日期,请将系统日期一定要调整准确哟。
第三步:选中F1单元格,输入公式=IF(WEEKDAY(B1,2)=7,"日",WEEKDAY(B1,2))后回车;再次选中F1单元格,执行“格式→单元格→数字→分类→特殊”,在右侧“类型”下面选中“中文小写数字”选项,“确定”退出,将“星期数”设置成中文小写形式。
(如图③)注:上述公式的含义是:如果(IF)当前日期(B1)是星期“7”(WEEKDAY(B1,2)=7),则在F1单元格中显示“日”,否则,直接显示出星期的数值(WEEKDAY(B1,2))。
第四步:选中H1单元格,输入公式=NOW()后回车;再次选中H1单元格,执行“格式→单元格→数字→分类→时间”,在右侧“类型”下面选中一款时间格式,“确定”退出。
批处理中的时间计算详解

批处理中的时间计算详解 最近总是有⼈在询问涉及到时间和⽇期计算的问题,其实要计算时间和⽇期最有效的⽅法是⽤vbs的时间函数,⼏⾏代码就解决了。
但我们今天要谈的就是如何⽤批来计算时间和⽇期(有点⾃找苦吃的感觉),下⾯就展开正题吧: ⼀、系统中的date和time变量 要进⾏时间和⽇期的计算,我们必须认识两个系统变量date和time。
当你在cmd中输⼊echo %date%#%time%再回车,屏幕上就会出现这样的⼀排字符:2009-08-19 星期三#10:20:10.20,前⾯是表⽰的当前的⽇期-2009年8⽉19⽇星期三共14个字符(中间有个空格),后⾯表⽰的是当前的时间10点20分10秒20毫秒共13个字符。
当然在不同的系统中时间格式是不⼀样的,我们暂以xp系统为例来继续后⾯的分析。
转回正题,现在我们可以通过变量截取命令来获得想要的时间参数。
如我想要获得当前的⼩时和分的值并把它分别赋值给名为h和m的变量:set "h=%time:~,2%"&set "m=%time:~3,2%",在这⾥要注意除了年以外所有的时间参数都是两位数的格式(年是四位),当数值不满两位时,系统会⾃动在前⾯补上0,⼩时是补上空格如: 8:04:09:03,这就会给我们的计算带来⿇烦(⼩时中的空格不影响计算),具体的将会在后⾯详细说明。
⼆、进制互换和去零操作 事实上时间参数是很⿇烦,其参数格式上存在着数种进制:⼗进制(年、毫秒)、⼗⼆进制(⽉)、三⼗进制(天,姑且这么说)、七进制(星期)、⼆四进制(⼩时)、六⼗进(分秒)。
⼤家看是不是很⿇烦,因为cmd中只能进⾏⼗进制计算,所以我们就必须先将所有的要计算的参数转化成⼗进制计算后再转回相应的进制。
我们前⾯讲到当分、秒(还有⽉、天)值不满两位时,系统会⾃动在前⾯补上0,要想正确计算,我们就必须去掉前⾯这个0。
为什么?因为在cmd中不会将08 09这样的数值认定为是⼗进制数值,⽽cmd中⼀般是只能进⾏⼗进制计算的(除了位运算),所以会导致程序出错。
万年历(WPS专用)

#NAME? #NAME? #NAME? #NAME? #NAME? #NAME? #NAME?
#NAME? #NAME? #NAME? #NAME?
#NAME? #NAME? #NAME? #NAME? #NAME? #NAME? #NAME?
#NAME? #NAME? #NAME? #NAME? #NAME? #NAME? #NAME?
#NAME? #NAME? #NAME? #NAME? #NAME? #NAME? #NAME?
#NAME? #NAME? #NAME? #NAME? #NAME? #NAME? #NAME?
26 27 28 29 30 31 1
23 24 25 26 27 28 29
29 30 31 1
2
3
4
26 27 28 29 30 1
#NAME? #NAME? #NAME? #NAME? #NAME? #NAME? #NAME?
#NAME? #NAME? #NAME? #NAME? #NAME? #NAME? #NAME?
12 13 14 15 16 17 18
9 10 11 12 13 14 15
15 16 17 18 19 20 21
17 18 19 20 21 22 23
21 22 2321 22 23 24 25
16 17 18 19 20 21 22
#NAME? #NAME? #NAME? #NAME? #NAME? #NAME? #NAME?
#NAME? #NAME? #NAME? #NAME? #NAME? #NAME? #NAME?
贰零贰零年
周日 29
5
周一 30
6
周二 31
用EXCEL制作一份万年历

用EXCEL制作一份万年历今天我们介绍用Excel制作万年历的方法。
这个万年历可以显示当月的月历,还可以随意查阅任何日期所属的月历,非常方便。
如果你愿意,还可以让它在特殊的日子里显示不同的提醒文字,一起来试试吧!本文所涉及到的函数有:1、(logical1,logical2, ...)2、3、4、5、6、7、8、1、启动EXCEL2003,新建一个工作表,取名保存(如万年历.xls),并在相应的单元格中,输入如图1所示的文本。
2、同时选中B1、C1、D1单元格,按“格式”工具栏上的“合并及居中”按钮,将其合并成一个单元格,并输入公式:=TODAY()。
选中B1(合并后的)单元格,执行“格式→单元格”命令,打开“单元格格式”对话框(如图2),在“数字”标签中的“分类”下面选中“日期”选项,再在右侧“类型”下面选中“二○○一年三月十四日”选项,“确定”退出,将日期设置成中文形式。
注意:TODAY()函数用于提取当前系统日期,请将系统日期一定要调整准确哟。
3、选中F1单元格,输入公式:=IF(WEEKDAY(B1,2)=7,"日",WEEKDAY(B1,2));选中H1单元格,输入公式:=NOW()。
选中F1单元格,打开“单元格格式”对话框,在“数字”标签中的“分类”下面选中“特殊”选项,再在右侧“类型”下面选中“中文小写数字”选项,“确定”退出,将“星期数”设置成中文小写形式;选中H1单元格,打开“单元格格式”对话框,在“数字”标签中的“分类”下面选中“时间”选项,再在右侧“类型”下面选中一款时间格式,“确定”退出。
注意:①上述前面一个公式的含义是:如果(IF)当前日期(B1)是星期“7”(WEEKDAY(B1,2)=7),则在F1单元格中显示“日”,否则,直接显示出星期的数值(WEEKDAY(B1,2))。
②上述第二个函数(NOW())用于提取当前系统日期和时间,也请将系统日期和时间调整准确。
windows应用场景下批量修改文件创建日期的批处理脚本

windows应用场景下批量修改文件创建日期的批处理脚本在Windows应用场景下,批量修改文件创建日期是一项常见的需求。
通过批处理脚本可以方便地实现这一功能。
本文将介绍如何使用批处理脚本来批量修改文件的创建日期。
1. 批处理脚本简介批处理脚本是一种可以在Windows中执行的简单脚本语言。
通过编写批处理脚本,可以执行一系列的命令和操作,以实现一些自动化的任务。
在本文中,我们将使用批处理脚本来修改文件的创建日期。
2. 创建批处理脚本首先,我们需要创建一个新的文本文件,将其后缀改为`.bat`,例如`modify_date.bat`。
然后,将下面的代码复制粘贴到新建的批处理脚本中:```@echo offsetlocal enabledelayedexpansionset target_path=/path/to/filesset new_date=20210101for /R "%target_path%" %%G in (*) do (echo %%Gecho !new_date!|copy /B %%G /y+,, >nul)endlocal```请将上述代码中的`/path/to/files`替换为你要修改的文件所在的路径,将`20210101`替换为你要设置的新的创建日期。
3. 修改批处理脚本中的参数在代码中,我们使用了两个参数`target_path`和`new_date`。
`target_path`表示文件所在的路径,而`new_date`表示要设置的新的创建日期。
你可以根据实际情况修改这两个参数的值。
4. 执行批处理脚本将批处理脚本保存后,双击运行即可开始修改文件的创建日期。
脚本会递归遍历指定路径下的所有文件,并将它们的创建日期修改为设定的新日期。
5. 注意事项需要注意的是,批处理脚本会直接修改文件的创建日期,而无法恢复到原始的创建日期。
在执行脚本之前,请确保你已经备份了相关文件,以免出现不可逆的错误。
Excel制作万年历方法(一看就会)

Excel制作万年历⽅法(⼀看就会)按CTRL,点击我我们将⼀步⼀步教您怎么制作EXCEL万年历!Office 2007是微软Office产品史上最具创新与⾰命性的⼀个版本。
全新设计的⽤户界⾯、稳定安全的⽂件格式、⽆缝⾼效的沟通协作。
Excel是Office套件中的⼀个重要组件之⼀。
直观的界⾯、出⾊的计算功能和图表⼯具,再加上成功的市场营销,使Excel成为最流⾏的微机数据处理软件。
⽇历分为阴历和阳历。
阳历的历年为⼀个回归年,现时国际通⽤的公历(格⾥⾼历)即为太阳历的⼀种,亦简称为阳历;阴历亦称⽉亮历,或称太阴历,其历⽉是⼀个朔望⽉,历年为1 2个朔望⽉,其⼤⽉30天,⼩⽉29 天;中国的农历就是阴阳历的⼀种。
如何在Excel实现万年历是对Office能⼒的综合运⽤,⼜是分析问题并进⾏求解的⼀系列过程。
2. 分析2.1 整体构思在进⾏整体构思之前,不妨我们先看看多数⽇历是怎样的情形,其中:1、上⾯居中为当前年份。
2、然后为当年的12个⽉份,⾄于每⾏为3个⽉还是4个⽉取决于可见界⾯的⼤⼩和美观。
3、总所周知,⼀周则为7天,每个⽉最⼤31天,最⼩28天;如果1号为周六或周⽇的话,则该⽉可能要跨越6周;因此每个⽉最⼤的跨越为六周,事实上我们找⼀下其它⽇历的模板,就会发现⼀般都是六周。
所以我们可以把每个⽉视为⼀个7 *6的单元格集合。
我们将⼀步⼀步教您怎么制作EXCEL万年历!2.2 算法问题当我们确定了每个⽉事实上为7*6的单元格集合后,我们接下来要做以下⼏件事情:1、如何定位和填充相应的每⽉的7*6单元格在单纯的Excel表中,我们很难采⽤逻辑判断和循环的⽅式获取在7*6单元格集合中的第⼀个星期⼀应该是哪⼀天;但我们知道这个7*6单元格所在⽉的第⼀天即1号却是固定的,同样当⽇期固定后,该⽇期所在的星期⼏也是固定的,假设2010-01-01为星期五,那星期⼀是⼏号呢?很显然,为2010年1⽉1号向前推4天即2009年12⽉28号,星期⼆则为1⽉1号向前推3天,以此类推,可以推到整个42个单元格中,只不过超过当⽉第⼀天的⽇期则向后推了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
批处理万年历(包括农历日期)[color=red]____________________________版主提醒____________________________为了避免影响技术讨论、提高看帖的舒适性,请大家不要在此帖下跟无实质内容的口水帖,特别是纯顶、纯支持、纯感谢、路过之类的帖子,管理人员将不定期清理此类回帖,请大家多参与讨论少灌水,与人方便,终将给自己带来方便,谢谢合作。
________________________________________________________________[/color][code]:: 月历查询工具最初发表于CN-DOS:: 原创:foxjl 更新:namejm, qzwqzw,foxjl:: 计算农历日期部分思路及算法来自"趣味东":: 输入的日期格式为:年-月-日(-可以替换为:、/,可以混用):: 在日历里面,★=当天:: 支持多种格式的日期输入::: ①若只输入一个数,则认为是查询当年月份,自动截取后两位数字查询,★标在1日上;:: ②若输入两个数,则认为是查询年和月,★标在1日上;:: ③输全的话,★标在指定日期上:: 关于年份的转换::: ①若年份上输入的数字少于三位,则作如下转换::: 50~99判定为19xx:: 0~49判定为20xx:: ②若输入的年份数字超过两位,则截取后四位字符(不足部分在高位补0),:: 按①的规则计算该年份的日期;:: 07-08-04 增加针对阳历的生肖及干支年计算;修改错误日期循环提示的BUG.:: 08-01-13 增加推算农历日期的功能,会有一天左右误差。
@echo offcolor 1fmode con cols=40 lines=20setlocal enabledelayedexpansionset str=日一二三四五六七八九set sdate=%date%:Maincls&echo.:: 日期提取、格式化与校验for /f "tokens=1,2,3 delims=-/: " %%i in ("%sdate%") do ((set sy=%%i) && (set sm=%%j) && (set sd=%%k))if not defined sd set sd=1if not defined sm set sm=%sy%&set sy=%date:~0,4%(set sy=0000%sy%) && (set sm=00%sm%) && (set sd=00%sd%)(set sy=%sy:~-4%) && (set sm=%sm:~-2%) && (set sd=%sd:~-2%)set /a y=1%sy%-10000, m=1%sm%-100, d=1%sd%-100 2>nulif errorlevel 9167 goto Errorif %y% lss 100 (if %y% lss 50 (set /a y+=2000) else (set /a y+=1900)set sy=!y!)if %m% lss 13 if %d% lss 32 goto Calc:Errorecho.错误的日期.pause>nulcd.set sdate=%date%goto Main:Calc::计算农历部分set/a Q=(y-1901)/4set/a R=y-1901-4*Qset n=0for %%i in (0,31,59,90,120,151,181,212,243,273,304,334) do (set /a n+=1if %m% equ !n! set z=%%i)set /a leap="^!(y%%4) & ^!(^!(y%%100)) | ^!(y%%400)"if %m% gtr 2 (if %leap% equ 0 (set /a z-=1) else (set /a z+=leap))set/a n=(140*Q+106*(R+1)+z*10+d*10)/295,H=(140*Q+106*(R+1)+z*10+d*10-295*n)/10 if %h% equ 0 set h=29if %h% leq 10 (if %h% equ 10 (set h=初十) else (set h=初%h%)) else (set h=%h:~0,1%十%h:~-1%号)for /l %%i in (1,1,9) do (call set h=%%h:%%i=!str:~%%i,1!%%)set h=%h:0=%:: 计算生肖及干支年set sx=猴鸡狗猪鼠牛虎兔龙蛇马羊set tg=庚辛壬癸甲乙丙丁戊己set dz=申酉戌亥子丑寅卯辰巳午未set /a sxnum=%sy% %% 12set /a tgnum=%sy:~-1%title 农历!tg:~%tgnum%,1!!dz:~%sxnum%,1!年生肖:!sx:~%sxnum%,1! 农历:%h%:: 计算每个月的天数set days=31for %%i in (4 6 9 11) do if %m% equ %%i set days=30:: 计算2月份的偏差set /a leap="^!(y%%4) & ^!(^!(y%%100)) | ^!(y%%400)"if %m% equ 2 set /a days=28+%leap%if %m% leq 2 (set /a y-=1& set /a m+=12):: 计算指定日期的星期数set /a w=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%%7echo. %sy%年%sm%月日期:%sy%-%sm%-%sd%,星期!str:~%w%,1!echo.:: 生成月历set /a wb=(w+35-d) %% 7, we=wb+days+1, day=1echo. 日一二三四五六echo. ━━━━━━━━━━━━━━━━━━━set /p= <nulfor /l %%i in (0,1,37) do (set "temp= "if %%i GTR %wb% if %%i LSS %we% (set temp= !day!set temp=!temp:~-2!if !d! EQU !day! set temp=★set /a day+=1)set /p= !temp!<nulset /a "wm=(%%i+1)%%7"if !wm! equ 0 echo.&echo.&set /p= <nul)echo.echo ━━━━━━━━━━━━━━━━━━━echo. 输入日期可查询当日星期并显示当月月历echo.set sdate=set /p sdate= 格式如:2007-02-03,[回车]退出:if defined sdate goto Main[/code]以下是各计算部分算法:[code]计算星期:基姆拉尔森计算公式W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7在公式中d表示日期中的日数+1,m表示月份数,y表示年数。
注意:在公式中有个与其他公式不同的地方:把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。
[/code][code]生肖及干支年计算方法是:出生公元年数÷12,然后根据除得的商的余数,对照生肖排列就马上可以知道。
生肖排列是:猴(0)、鸡(1)、狗(2)、猪(3)、鼠(4)、牛(5)、虎(6)、兔(7)、龙(8)、蛇(9)、马(10)、羊(11)。
天干地支算法:首先要能记住十大天干和十二地支,十天干:甲、乙、丙、丁、戊、己、庚、辛、壬、癸;十二地支:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥;天干地支纪年法首先是天干在前,地支在后,比如今年2005就为-乙酉年,先来算算天干,有个公式:4、 5、 6、 7、 8、 9、 0、 1、 2、 3 对应的十天干就是甲、乙、丙、丁、戊、己、庚、辛、壬、癸,数字为年代的最后的一位数字,比如今年是2005,最后一位是5,对应的天干就是乙;地支的算法:用年代数除以12,后面的余数就代表某个地支,余数分别为:4、 5、 6、 7、 8、 9、 10、 11、 0、 1、 2、 3,代表地支为:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥,比如2005年为例:年代末尾数为5,对应的天干为乙,2005除以12,余数为1,对应的地支为酉,所以2005年为乙酉年。
[/code][code]农历日期部分的算法是:阴历日期是以月亮的圆缺为计月单位,其以逢朔为初一,以月望为十五(大月为十六日),以月晦为二十九日(大月为三十日)。
然而目前记时通常用阳历日期表达,如欲将阳历日期换算成阴历日期可以用以下两种方法:其一是查《新编万年历》,如查1984年6月8日是阴历几日?翻开万年历6月10日是阴历十一,则逆推6月8日是阴历初九。
其二可以利用公式推算阴历日期:设:公元年数-1977(或1901)=4Q+R则:阴历日期=14Q+10.6(R+1)+年内日期序数-29.5n(注:式中Q、R、n均为自然数,R<4)例:1994年5月7日的阴历日期为:1994-1977=17=4×4+1故:Q=4,R=1 则:5月7日的阴历日期为:14×4+10.6(1+1)+(31+28+31+30+7)-29.5n=204.2- 29.5n然后用29.5去除204.2得商数6......27.2,6即是n值,余数27即是阴历二十七日。
[/code]。