Board logo

标题: 怎样自动替换bat中的变量 [打印本页]

作者: 999888777     时间: 2008-5-12 12:14    标题: 怎样自动替换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
作者: jia332     时间: 2008-5-12 13:09
please refer to the address
http://www.cn-dos.net/forum/viewthread.php?tid=40226&fpage=1
作者: 999888777     时间: 2008-5-12 15:32
请帮忙按我的思路修改一下好吗?
作者: 999888777     时间: 2008-5-13 08:16
我想借此请教替换变量的问题,set b=%a:t=t2%这一句替换不了,请赐教,拜托 !
作者: plp626     时间: 2008-5-13 08:49
@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
作者: 999888777     时间: 2008-5-13 09:49
谢谢 plp626 并请教:
"t=%%i" 这句为什么加引号呢?
call set b=%%a:%t%=%t2%%% 这句为什么用call及%%呢?
作者: plp626     时间: 2008-5-13 10:28
你(set t=%%i )这句i后面实际上还有个空格,所有t值==%%i空格,这会得不到你要的结果。
用"t=%%i"是让你养成个好习惯,这样不容易出错。
call .....?
你观察下面代码自己体会
@echo off
set d=abc
echo %d%
echo %%d%%
call echo %%d%%
call的作用就在于此。
作者: 999888777     时间: 2008-5-13 14:06
再次感谢 plp626 !
作者: woo88     时间: 2008-5-26 22:53
call是什么意思?