楼 主
[请教]如何在批处理中判断日期?
发表于 2006-09-28 06:55 · 中国 湖南 长沙 电信
新手上路
★
积分 9
发帖 3
注册 2006-09-28 05:43
19年会员
UID 63891
性别 男
状态 离线
判断今天是否是20号
如果是就执行拷贝命令
批处理怎么编?请教
(不显示DOS运行窗更好)
谢!
————————————俺是分割线——————————————
*********************************
版务记录
*********************************
操作: 更改标题
原因: 原格式不符版规
原标题: 新手求教
执行: 3742668
处罚: 初犯,赦之。
备注: 1.建议发贴前看看置顶版规
2.如何更改标题?
点击所发贴右下角的
编辑按钮,然后进行编辑。
**********************************
[ Last edited by 3742668 on 2006-9-29 at 09:07 ]
第 2 楼
发表于 2006-09-28 07:05 · 中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
XP下判断当天是否是系统设置中的20号,可以用 if %date:~-2% equ 20 的格式。
不显示DOS运行窗口已经是老生常谈的话题了,光靠批处理命令是实现不了的,楼主还是打消这个念头吧——除非借助第三方软件或其他语言。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
第 3 楼
发表于 2006-09-28 21:14 · 中国 湖南 长沙 电信
新手上路
★
积分 9
发帖 3
注册 2006-09-28 05:43
19年会员
UID 63891
性别 男
状态 离线
第 4 楼
发表于 2006-09-28 21:26 · 中国 江苏 苏州 电信
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
我记得 namem 好像说过他时间后面没有星期几的
你换这个试试看吧 %date:~8,2%
第 5 楼
发表于 2006-09-28 21:33 · 中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
Originally posted by NaturalJ0 at 2006-9-28 21:26:
我记得 namem 好像说过他时间后面没有星期几的
你换这个试试看吧 %date:~8,2%
是的,我的时间后面有时候有星期几,但是绝大部分时候是没有的,不知道是哪个地方设置出问题了。还是你的方法要通用一点。另外,用下面截取字符的方法也可以,只不过要稍微麻烦一点:
@echo off
for /f "tokens=3 delims=-" %%i in ("%date%") do echo 当前系统日期为 %%i 日
pause
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
第 6 楼
发表于 2006-09-28 21:47 · 中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
@echo off
if "%date:~8,-4%" equ "20" (
echo 这里你就是执行拷贝命令
) ELSE (
echo 今天不是20号
)
PAUSE
[
Last edited by fastslz on 2006-9-28 at 21:51 ]
第 7 楼
发表于 2006-10-01 03:29 · 中国 江苏 镇江 电信
中级用户
★★
积分 219
发帖 82
注册 2005-10-29 10:56
20年会员
UID 44240
状态 离线
%date%在XP和2000下的结果是相反的一个星期在前面一个在后面
www.jastyg.com
www.efengchi.com
第 8 楼
发表于 2006-10-01 03:34 · 中国 北京 联通
银牌会员
★★★
努力做坏人
积分 1,185
发帖 438
注册 2006-08-28 12:00
19年会员
UID 61449
来自 北京
状态 离线
是的,2000和XP的日期显示是这样的,不过楼主已经说过啦,是XP系统,其实是2000也是好处理的,用VER命令的输出判断一下系统类型,然后在进行相应的处理便是啦........
我今后在论坛的目标就是做个超级坏人!!!
第 9 楼
发表于 2006-10-01 04:03 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
Originally posted by fastslz at 2006-9-28 21:47:
@echo off
if "%date:~8,-4%" equ "20" (
echo 这里你就是执行拷贝命令
) ELSE (
echo 今天不是20号
)
PAUSE
[ Last edited by fastslz on 2006 ...
执行你这个怎么成了这个了?
C:\>兀
'兀' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
????????
第 10 楼
发表于 2006-10-01 06:00 · 中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
不要保存成unicode的txt
C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
第 11 楼
发表于 2006-10-01 09:42 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
第 12 楼
发表于 2006-10-01 10:17 · 中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
粘贴到记事本》保存类型》所有文件》?.cmd》编码还是默认的ANSI
第 13 楼
发表于 2006-10-01 11:44 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
多谢!
顺便问一下,unicode 和 ansi 有什么区别?
第 14 楼
发表于 2006-10-01 12:05 · 中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
这个问题自己搜索
C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
第 15 楼
发表于 2006-10-01 12:15 · 中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
这一下子可说不明白的,引用下willsort 版主关于编码一贴
willsort at 2006-7-23 12:15:
记事本程序在保存一篇新建的文档时,如果没有指定编码类型,会使用缺省的ANSI类型(对于中文版来说,对应的就是GB码)。
而在打开一篇已创建的文档时,它会分析文档的编码类型,它首先判断文档头部有无BOM(Byte Order Mark,字节序标记,长度为2~3字节),如果有则根据其内容判断编码类型,FF、FE(Unicode),FE、FF(Unicode big endian),EF、BB、BF(UTF-8)。
因为事实上有很多非ANSI编码的文档是没有任何BOM的“纯文本”,所以对这些文档不能简单的判断为ANSI编码。而需要使用一系列的统计学算法根据文档内容来猜测文档编码。记事本使用了 IsTextUnicode 函数来判断是否为 Unicode/Unicode big endian 编码,使用 IsTextUTF8 判断是否为 UTF8 编码。
但既然是统计学算法,就难免存在误判,尤其在文档内容过短时,由于样本的容量太小,这种误判的概率会显著增大。比如那个有名的微软与联通有仇的笑话,就是记事本在打开只有"联通"二字的ANSI编码文档时,IsTextUTF8 函数将其误判为UTF8编码;同样的误判也发生在 IsTextUnicode 函数上,比如具有 “this app can break”这种具有4335结构的文档,会被误判为 Unicode 编码。
需要说明的是,这种误判的可能性是建立在文本较短且其字节位特征不被干扰的前提上的。如果将上述的文本做稍许修改(即使只是增加一个回车),则误判很难再发生。
而 yuanyong630 兄方案的特殊性在于,它的字节串不但具有Unicode特征,而且很长达到了1288字节,也就是说它的Unicode特征性很强,所以可以抵抗一些较短的不具有Unicode特征串的干扰,这是由统计学的规律所决定的。但是在干扰串稍长时,Unicode的特征将会受到显著干扰,直至被 IsTextUnicode 函数认定为非 Unicode。所以,有些朋友总是无法测试成功,应该是与附加的批处理代码长度和内容相关。大家可以测试一下中的代码。
因为其他的编辑器(比如 Word / Wordpad / EditPlus / UltraEdit)使用了更新的编码类型判断算法,所以在 Unicode 判断上改进了不少,而 UTF8 的判断仍然不尽如人意。但因为理论上来说完全准确地算法并不存在,所以我们只能依靠避免使用无BOM的非ANSI文档,或者打开文档时手动指定编码类型。
另外,如果使用记事本保存了这些误判了编码类型的文件,则将难以恢复。如果使用误判编码保存,则将给原文档加上BOM标记,则使用其他编辑器也再无法观察到原文档。如果使用 ANSI 编码保存,则原文档将会被当作 Unicode 文档而被转换,还原的可能性接近于零。
Unicode简介
http://my.opera.com/neutronstar/blog/index.dml/tag/编码
微软为什么和联通有仇
http://blog.vckbase.com/localvar/archive/2005/07/12/9510.aspx
Notepad bug? Encoding issue?
http://weblogs.asp.net/cumpsd/archive/2004/02/27/81098.aspx
Bush Hid The Facts
http://www.shoutwire.com/comments/16341/Bush_Hid_The_Facts
[
Last edited by fastslz on 2006-10-1 at 12:16 ]
论坛跳转: