我有一個批處理文件,它調用其他程序打開並運行。我的批處理文件在Windows鎖定時不會繼續
我想讓這個批處理文件在我的計算機被鎖定的情況下在一夜之間運行。我使用Windows任務計劃程序在一夜之間運行此程序。批處理文件運行良好,除非它到達start Check1.msl
。然後窗戶似乎無法找到該文件。當我解鎖我的電腦並手動執行批處理文件時,找到並運行這些文件沒有任何問題。
這裏是我的代碼:
@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
無濟於事。
設置你的工作目錄。使用Task Scheduler啓動的批處理有另一個「homedir」 – Stephan
我還要檢查您的電源選項,並確保硬盤在待機時不會關閉。 –
'IF EXIST'看起來不錯嗎?不知道我是否得到了正確的答案。隨着我所做的研究,我無法弄清楚是否可以。 –