我遇到了我编写的代码问题并且一直试图批量运行。这是:
echo off
SETLOCAL
set a==%time /t%
if (a!=18:00) goto stop
else goto start
:start
net stop "spooler"
timeout 3 > null
echo "it is done"
timeout 5 > null
echo "now we restarting the service"
timeout 3 > null
net start "spooler"
:stop
PAUSE
ENDLOCAL
它应该做的是检查机器验证的当前时间与代码中预先调节的时间,如果它不匹配或不相符,则相应地采取行动。我不知道为什么(可能是因为我是新手)它会返回错误消息,上面写着:
= 18:00此时出乎意料
有什么建议吗?
提前致谢,
R上。 Shahin的
答案 0 :(得分:0)
要将命令结果分配给变量,您需要使用for /f
如果命令不支持类c语法。除此之外,您还有内置的%time%
变量。你需要使用像if %my_time% neq 18:00
这样的东西。请注意%time%(和时间命令)取决于时间设置。尝试这样的事情:
@echo off
pushd "%temp%"
makecab /D RptFileName=~.rpt /D InfFileName=~.inf /f nul >nul
for /f "tokens=3-7" %%a in ('find /i "makecab"^<~.rpt') do (
set "current-time=%%d"
)
del ~.*
popd
set hours=%current-time:~0,2%
set minutes=%current-time:~3,2%
echo %hours%%minutes%
if "%hours%%minutes%" neq "1800" (
goto stop
) else (
goto start
)
....