Board logo

标题: set /a 下分组运算? [打印本页]

作者: lihui3003     时间: 2006-1-1 18:05    标题: set /a 下分组运算?
怎么把time里的小时,分钟,秒取出?
下面的怎么用?
() - 分组
! ~ - - 一元运算符
, - 表达式分隔符

Last edited by lihui3003 on 2006-1-3 at 17:25 ]

作者: JonePeng     时间: 2006-1-1 20:10
%hour%=%time:~0,2%
%min%=%time:~3,2%
%sec%=%time:~6,2%

作者: 220110     时间: 2006-1-2 09:53
我的 %date% 是: "2006-01-02 星期一“;
当我 %date:~11,3% 就可取出"星期一“三个字,为何不是 %date:~11,6% ,中文不是要双字节的么?

作者: JonePeng     时间: 2006-1-2 11:25
Originally posted by 220110 at 2006-1-2 09:53:
当我 %date:~11,3% 就可取出"星期一“三个字,为何不是 %date:~11,6% ,中文不是要双字节的么?

嗯,问得好!CMD里把每个中文都当成一个字来看待,不存在“半个汉字”的情况。

作者: 220110     时间: 2006-1-3 11:04
既然 %variable:~X,Y% 可以取相应字符,就可以不用for 的"tokens=x,y,m-n"那么麻烦了。。

作者: willsort     时间: 2006-1-4 17:17
Re 220110:

“中文不是要双字节”属于 DOS 时代的观念了。在现在的新系统中,中文及其他任何字符的长度可能是两个、三个、四个或更多个字节,这主要取决于系统字符集的选择,因为 windows 核心采用了 unicode 的多字节系统,只是在外壳层又针对不同的语言版本做了不同的字符基转换。而在 unicode 系统中所有的字符都是等长的,所以cmd 乃至 windows 才会对文本中的汉字和英文“一视同仁”。

作者: JonePeng     时间: 2006-1-4 18:49
请教willsort:

我当时也猜到是 Unicode 在起作用。但Win9x/ME系统好像不是基于Unicode的吧?