当Windows被锁定时,我的批处理文件不会继续

时间:2015-05-14 13:51:50

标签: batch-file vbscript lockscreen

我有一个批处理文件,可以调用其他程序来打开和运行。

我希望这个批处理文件在我的计算机锁定时过夜运行。我使用Windows任务计划程序一夜之间运行此程序。批处理文件运行正常,除非它到达start Check1.msl。然后Windows似乎无法找到该文件。当我解锁计算机并手动执行批处理文件时,找到并运行这些文件没有问题。

这是我的代码:

@echo off
Start Check1.msl

PING 1.1.1.1 -w 1000 -n 1
start passwordinjector.vbs

IF EXIST C:\Users\Username\Desktop\New folder\check.rpt (

    taskkill /IM MAINRDW.exe >nul

    PING 1.1.1.1 -w 500 -n 1
    Start Trial.msl

    PING 1.1.1.1 -w 1000 -n 1
    start passwordinjector.vbs

    Del C:\Users\Username\Desktop\New folder\check.rpt

) ELSE (
    PING 1.1.1.1 -w 500 -n 1
    taskkill /IM MAINRDW.exe >nul
)

修改

我现在已经尝试了一段时间了。为了测试它,我只需使用Windows任务计划程序运行它一分钟然后锁定我的计算机并等待计划程序启动。

这是我到目前为止所做的:

@echo off
cd /d "%~dp0"

PING 1.1.1.1 -w 2000 -n 1
echo starting the check1 msl file
Start Check1.msl

PING 1.1.1.1 -w 2000 -n 1
echo starting the password injector file
WScript //B passwordinjector.vbs

IF EXIST C:\Users\USERNAME\Desktop\New folder\check.rpt (
echo check if the check exists
taskkill /IM MAINRDW.exe /f >nul 2>&1


PING 1.1.1.1 -w 2000 -n 1
echo It does exist, so run the next Trial msl
Start Trial.msl

PING 1.1.1.1 -w 3000 -n 1
WScript //B passwordinjector.vbs

Del C:\Users\USERNAME\Desktop\New folder\check.rpt


) ELSE (
PING 1.1.1.1 -w 1000 -n 1
it doesnt exits
taskkill /IM MAINRDW.exe /f >nul 2>&1

)
exit    

对批处理文件进行故障排除非常困难。如果有人有任何建议,我将不胜感激。通过反复试验,我发现(仍然不确定)它没有执行.vbs脚本。所以我从Microsoft's developer network在线查找并获得了语法WScript //B

EDIT2:

我在代码中加了pause来分解它,并确保它正在做它应该做的事情。不是。

Check1.msl会吐出名为check.rpt的文件。当我手动运行它并且批处理文件暂停时 - check.rpt就在那里。我安排任务并锁定我的电脑。当我重新登录时,msl程序打开,cmd提示符暂停,但没有check.rpt文件。

这是我在开始时所拥有的:

@ECHO OFF
PUSHD "%~dp0

ECHO CD is now %CD%

PING 1.1.1.1 -w 2000 -n 1
echo starting the check1 msl file
DIR Check1.msl
Start Check1.msl

PING 1.1.1.1 -w 2000 -n 1
echo starting the password injector file
WScript //B passwordinjector.vbs

pause

我试过cscript passwordinjector.vbs无济于事。

2 个答案:

答案 0 :(得分:0)

.bat脚本可以使当前工作目录成为它所在的目录:

PUSHD "%~dp0"

在退出前请记住POPD。

@ECHO OFF
PUSHD "%~dp0"

ECHO CD is now %CD%
DIR Check1.msl

START Check1.msl
...

答案 1 :(得分:0)

似乎问题在于VBScript。我使用.sendkey来注入密码。这是在计算机锁定时被限制的;所以我运气不好。