日期:2014-05-17  浏览次数:20717 次

请教:批处理中AT命令的时间参数传递问题
现在遇到个问题:
   用net time \\computerName 获取了目标机器的当前时间,传给字串,如:string="上午 08:31",现在怎么把这个时间加1做为参数,并传给AT命令使其能正确执行?

   @echo off
   for /f "" %%a in('net time \\computerName') do (set string=%%a)
 
   at \\computerName string test.exe  ;这一句功能应该怎么实现

谢谢!
------最佳解决方案--------------------
实现起来也不复杂,主要是时间处理,写了一个XP环境下测试通过的


@echo off
for /f "tokens=4-6 delims=: " %%a in ('net time \\computerName') do (
  set HRMODE=%%a
  if "%%b"=="08" (set /a HR=8) else (if "%%b"=="09" (set /a HR=9) else (set /a HR=%%b)) 
  if "%%c"=="08" (set /a MIN=9) else (if "%%c"=="09" (set /a MIN=10) else (set /a MIN=%%c+1)) 
)
if %MIN% GEQ 60 (
  set /a MIN-=60
  set /a HR+=1
)
if "%HRMODE%"=="上午" (if %HR%==12 (set HR=0))
if "%HRMODE%"=="下午" (if %HR% NEQ 12 (set /a HR+=12))
if %HR% GEQ 24 (set HR=0)
if %MIN% LEQ 9 (set MIN=0%MIN%)
if %HR% LEQ 9 (set HR=0%HR%)
at \\computerName %HR%:%MIN% test.exe
pause

------其他解决方案--------------------
从时间格式上来看你这个涉及到了24小时制转换和时间计算,不仅仅是传参的问题
------其他解决方案--------------------
那具体应该怎么实现呢,有什么方法没
------其他解决方案--------------------
你的代码写得很规范啊,学习下,谢谢指点!
------其他解决方案--------------------
引用:
你的代码写得很规范啊,学习下,谢谢指点!


写得仓促,其实这个时间处理上还有点点不对头的地方,你可以自己看看