首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > windows >

批处理代码出错有关问题的原因

2012-12-14 
批处理代码出错问题的原因@echo off for /f %%i in (ip.txt) do (net use \\%%i password /u:%%i\administ

批处理代码出错问题的原因

@echo off
 for /f %%i in (ip.txt) do (
   net use \\%%i password /u:%%i\administrator
   if errorlevel 0 (
      copy test.exe \\%%i\c$\
      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% c:\test.exe
      if errorlevel 1 @echo "AT error."
    )else @echo "COPY error."
    net use \\%%i /del
  )else @echo "NET USE error."
exit


上面这段代码老是提示“这个时候不能有 60”,什么原因啊,麻烦帮我看下!
[解决办法]
if %MIN% GEQ 60 (  这段代码报错,什么原因?真奇怪!
[解决办法]
先检查一下你的括号匹配,如果没问题再核对一下获取的时间参数是否正确
[解决办法]
%MIN%为空
[解决办法]
我测了没有语法问题,把获取的时间参数的代码单独测试也没问题啊,有点晕!
[解决办法]

引用:
我测了没有语法问题,把获取的时间参数的代码单独测试也没问题啊,有点晕!


再仔细检查一下括号匹配
[解决办法]
括号是最早检查的没问题,代码能帮我测试下不,我感觉没问题
[解决办法]
给你整理了一下,你再试试看


@echo off&setlocal enabledelayedexpansion
  for /f %%i in (ip.txt) do (
    net use \\%%i PassWord /u:%%i\administrator
    if errorlevel==0 (
       copy test.exe \\%%i\c$\
       if errorlevel==0 (
         for /f "tokens=4-6 delims=: " %%a in ('net time \\%%i') 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 \\%%i !HR!:!MIN! c:\test.exe
         if %errorlevel%==1 @echo "AT error."
       )else @echo "COPY error."
       net use \\%%i /del
    )else @echo "NET USE error."
  )
exit

热点排行