如何在win 10上调试任务调度程序?

时间:2017-11-14 12:29:54

标签: batch-file windows-10 taskscheduler

我正试图在我的电脑上每15分钟执行以下蝙蝠:

@ECHO OFF

SETLOCAL enabledelayedexpansion

SET host=http://dnsad.de/rest/
SET slideshowurl=http://dnsad.de/display/currentSlideshow/mac/
SET slideshowfolder=C:\Slideshow
SET ieprocess="iexplore.exe"
SET ignore_result=INFORMATION:

FOR /f "delims=" %%a IN ('getmac /v ^|find /i "Realtek"') DO (
    FOR %%b IN (%%a) DO (
        SET element=%%b
        IF "!element:~2,1!!element:~5,1!!element:~8,1!"=="---" set mac=%%b
    )
)

SET formattedmac=%mac:-=:%
SET macpath=%mac:-=_%

FOR /f "delims=" %%a IN ('curl -X GET %host%%formattedmac%') DO (
    FOR %%b IN (%%a) DO (
        SET update=%%b
    )
)

IF "%update%"=="[true]" (
    CD %ProgramFiles%\WinHTTrack\
    httrack %slideshowurl%%formattedmac% -q -O "C:\Slideshow" -s0 -B -a
    curl -X PUT %host%%formattedmac%

    START iexplore -k %slideshowfolder%\dnsad.de\display\currentSlideshow\mac\%macpath%.html
)

EXIT

脚本在执行时应该正常工作。我得到设备的mac地址,从curl获得预期的服务器响应,WinHTTrack正确备份数据,curl更新服务器字段,然后使用更新的本地html打开Internet Explorer。

当使用win 7安排为任务时,它也可以正常工作。从Win 10上的任务计划程序运行bat时,它最后做的是curl PUT,但Internet Exploerer永远不会打开。该任务被标记为成功。

我在Win 7和Win 10上以管理员身份登录。我几乎测试了taskscheduler中的每个设置。似乎没有什么工作。为什么互联网浏览器没有开始?

[编辑]

似乎“运行用户是否登录”选项会导致问题。但这里有一个问题: 我正在Internet Explorer Kiosk模式下显示幻灯片,需要定期从我的服务器获取更新的数据以显示新的幻灯片。上述选项可防止控制台在执行bat文件时弹出。如果我“只在用户登录时才执行”,我确实会在Internet Explorer中显示更新的数据,但每隔15分钟就会弹出一个控制台窗口。

我尝试用cmd /c "update" /min "PATH TO BAT"进行exectuing,但这些问题无法解决问题。

1 个答案:

答案 0 :(得分:0)

正如我在[编辑]中所提到的,问题是选项"运行用户是否登录",我曾用它来阻止命令行窗口弹出。当我使用选项"仅在用户登录时执行"我需要"包裹"在VBScript中没有打开cli的蝙蝠。因此,通过使用以下行安排vbs:

Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "cmd /c PATH\TO\BAT", 0, True

我可以在没有闪光的情况下执行击球。