中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 18:13
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » 怎样自动替换bat中的变量
可打印版本  1,108 / 8
第1楼 999888777 发表于 2008-05-12 12:14
初级用户 发帖 11 积分 28
怎样自动替换bat中的变量
想把以下代码中的分钟数增大2,如 8:12:36,变为8:14:36,该怎么写?
@echo off
echo %time%>t.txt
for /f "tokens=2 delims=:" %%i in (t.txt) do (set t=%%i )
echo %t%
set /a t2=%t%+2
echo %t2%
set a=%time%
set b=%a:t=t2%
echo %b%
pause
第2楼 jia332 发表于 2008-05-12 13:09
初级用户 发帖 81 积分 160
第3楼 999888777 发表于 2008-05-12 15:32
初级用户 发帖 11 积分 28
请帮忙按我的思路修改一下好吗?
第4楼 999888777 发表于 2008-05-13 08:16
初级用户 发帖 11 积分 28
我想借此请教替换变量的问题,set b=%a:t=t2%这一句替换不了,请赐教,拜托 !
第5楼 plp626 发表于 2008-05-13 08:49
银牌会员 发帖 1,020 积分 2,278
@echo off
echo %time%>t.txt
for /f "tokens=2 delims=:" %%i in (t.txt) do set "t=%%i"
echo %t%
set /a t2=%t%+2
echo %t2%
set a=%time%
call set b=%%a:%t%=%t2%%%
echo %b%
pause
第6楼 999888777 发表于 2008-05-13 09:49
初级用户 发帖 11 积分 28
谢谢 plp626 并请教:
"t=%%i" 这句为什么加引号呢?
call set b=%%a:%t%=%t2%%% 这句为什么用call及%%呢?
第7楼 plp626 发表于 2008-05-13 10:28
银牌会员 发帖 1,020 积分 2,278
你(set t=%%i )这句i后面实际上还有个空格,所有t值==%%i空格,这会得不到你要的结果。
用"t=%%i"是让你养成个好习惯,这样不容易出错。
call .....?
你观察下面代码自己体会


call的作用就在于此。
第8楼 999888777 发表于 2008-05-13 14:06
初级用户 发帖 11 积分 28
再次感谢 plp626 !
第9楼 woo88 发表于 2008-05-26 22:53
初级用户 发帖 96 积分 188
call是什么意思?
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023