我正试图在我的电脑上每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,但这些问题无法解决问题。
答案 0 :(得分:0)
正如我在[编辑]中所提到的,问题是选项"运行用户是否登录",我曾用它来阻止命令行窗口弹出。当我使用选项"仅在用户登录时执行"我需要"包裹"在VBScript中没有打开cli的蝙蝠。因此,通过使用以下行安排vbs:
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "cmd /c PATH\TO\BAT", 0, True
我可以在没有闪光的情况下执行击球。