Batch file 批处理脚本,时间变量
我写的代码有问题,并且一直试图批量运行。这是:Batch file 批处理脚本,时间变量,batch-file,command-prompt,Batch File,Command Prompt,我写的代码有问题,并且一直试图批量运行。这是: 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 sta
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将命令结果分配给需要使用的变量 If命令不支持类似c的语法。此外,还有内置的
%time%
变量。如果%my_time%neq 18:00,则需要使用类似于的内容。请注意,%时间%(和时间命令)取决于时间设置。试着这样做:
@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
)
....
@echo关闭
pushd“%temp%”
makecab/D RptFileName=~.rpt/D InfFileName=~.inf/f nul>nul
对于('find/i“makecab”^中的/f“tokens=3-7”%%a,将命令结果分配给需要使用的变量
If命令不支持类似c的语法。此外,您还有内置的%time%
变量。如果%my\u time%neq 18:00
,则需要使用类似的内容。请注意%time%(和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
)
....
@echo关闭
pushd“%temp%”
makecab/D RptFileName=~.rpt/D InfFileName=~.inf/f nul>nul
对于('find/i“makecab”^中的/f“tokens=3-7”%%a,谢谢。我已经添加了您的代码并运行了它,返回的错误消息是:“|此时是意外的”@echo off pushd”%temp%”makecab/D RptFileName=~.rpt/D InfFileName=~.inf/f nul>nul for/f“tokens=3-7%%a in('find/i“makecab”^谢谢。我已经添加了您的代码并运行了它,它返回的错误消息是:“|此时是意外的”@echo off pushd“%temp%”makecab/D RptFileName=~.rpt/D InfFileName=~.inf/f nul>nul for/f“tokens=3-7”%%a in('find/I“makecab”^