中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-27 00:36
47,812 主题排行 / 349,912 发帖 / 今日 2 篇 / 48,264 会员排行
其它操作系统综合讨论区 » %time:~0,2% %%内的啥意思[已解决]
可打印版本  1,042 / 6
第1楼 bjsh 发表于 2007-03-16 10:01
银牌会员 发帖 621 积分 2,000
%time:~0,2% %%内的啥意思[已解决]
同题

[ Last edited by bjsh on 2007-3-16 at 10:47 AM ]
第2楼 oilio 发表于 2007-03-16 10:10
高级用户 发帖 303 积分 641
哦,这个源于时间的格式问题,最后两个字符为毫秒,一般人用不着这样,用几点几分几秒的格式比较多一点,所以这样用就是为了去掉最后三个字符,前面的0表示偏移量是0也就是取第一个字符,从第一个字符开始,-3表示去掉后三个字符。这里的之前的0也可以省略。意思我明白,不知道我有没有说错,但愿不要误人子弟。不知道我说了这么多你有没有明白,论坛有这样的贴子,可以搜索一下,lxmxn兄也写过这样的贴子,还有批处理解释这样的用法。有空一定要好好看看。

[ Last edited by oilio on 2007-3-15 at 09:11 PM ]
第3楼 Climbing 发表于 2007-03-16 11:52
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
从set /?中提取的有关帮助:

%PATH:~10,5%

会扩展 PATH 环境变量,然后只使用在扩展结果中从第 11 个(偏
移量 10)字符开始的五个字符。如果没有指定长度,则采用默认
值,即变量数值的余数。如果两个数字(偏移量和长度)都是负数,
使用的数字则是环境变量数值长度加上指定的偏移量或长度。

%PATH:~-10%

会提取 PATH 变量的最后十个字符。

%PATH:~0,-2%

会提取 PATH 变量的所有字符,除了最后两个。


示例:

d:\>echo %time%
22:41:02.15

d:\>echo %time:~-3%
.77

d:\>echo %time:~0,-3%
22:41:19

d:\>echo %time:~,-3%
22:41:26

d:\>echo %time:~0,2%
22

d:\>set a=12345678

d:\>echo %a:~-5,-1%
4567

d:\>echo %a:~-5,-2%
456

d:\>echo %a:~-5,-5%
ECHO 处于打开状态。

d:\>echo %a:~-5,-6%
ECHO 处于打开状态。

d:\>echo %a:~-5,-4%
4
第4楼 bjsh 发表于 2007-03-16 21:54
银牌会员 发帖 621 积分 2,000
谢谢ls的二位;

本来也是觉得和set有关系;

看了半天的xp自带的.htm的set帮助都没有提到这个;

原来命令提示符下的帮助和那里面的不一样啊!!
第5楼 bjsh 发表于 2007-03-16 22:10
银牌会员 发帖 621 积分 2,000

d:\>echo %a:~-5,-5%
ECHO 处于打开状态。


但是

c:\>echo %a:~1,1%
8
第6楼 bjsh 发表于 2007-03-16 22:20
银牌会员 发帖 621 积分 2,000
理解了!!

[ Last edited by bjsh on 2007-3-16 at 10:05 AM ]
第7楼 oilio 发表于 2007-03-16 22:59
高级用户 发帖 303 积分 641
C:\>for /r c:\ %a in (*.flag) do set t=%~ta && echo %t:~5,7%

C:\>set t=2007-03-16 09:28 && echo %t:~5,7%
%t:~5,7%

C:\>for /r c:\ %a in (*.flag) do @set t=%~ta && @echo !t:~5,7!
!t:~5,7!
%呢?少一个,而且之前没有开启变量延迟,用!!不起作用啊。

[ Last edited by oilio on 2007-3-16 at 10:01 AM ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023