我编写了一个批处理文件,用于检查 Hamachi 服务是否正在工作,如果不工作则启动它。我通过编写 vbs 脚本使这个脚本在后台工作
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False
并执行它
wscript.exe "invisible.vbs" "HamachiRestart.bat"
HamachiRestart.bat 看起来像这样:
for /F "tokens=3 delims=: " %%H in ('sc query "Hamachi2Svc" ^| findstr " STATE"') do (
if /I "%%H" NEQ "RUNNING" (
net start "Hamachi2Svc"
echo %COMPUTERNAME% %DATE% %TIME% :: Uruchomiono usługę >> LOG.txt
)
)
echo %COMPUTERNAME% %DATE% %TIME% :: OK >> LOG.txt
exit
当我从控制台执行它时,它工作正常(重新启动服务并将行添加到日志),但主要问题是,当我尝试在 Windows 任务计划程序中安排它时,它部分工作(重新启动服务,但日志是空...)
有什么解决办法吗?我只需要这个日志文件工作。
最佳答案
我认为问题在于日志文件的相对路径,您需要绝对路径,例如: C:\temp\LOG.txt
。
如果您从控制台启动,则可以在同一目录中创建日志文件,但如果您尝试安排它,则无法创建日志文件,因为当前目录是系统目录。
关于windows - Windows 任务计划程序中的 wscript.exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31745550/