windows - Windows 任务计划程序中的 wscript.exe

标签 windows batch-file vbscript wsh hamachi

我编写了一个批处理文件,用于检查 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/

相关文章:

Windows 批处理文件 : . bat vs .cmd?

rest - 经典ASP亚马逊s3休息授权

vba - 将参数从 VBS 传递到 VBA

batch-file - 无法使用批处理文件读取txt文件内部

python - 如何在 Windows 上使用带有内置命令的 subprocess.Popen

c++ - 为什么 std::sqrt() 在 C++ 中对 double 据不能正常工作?

c++ - 检查节点是否代表 C++ 中的目录

windows - 批处理文件中的for循环

batch-file - 如何停止在批处理程序中启动的 VBScript?

c++ - 确定与 URI 方案关联的默认图标