2015-05-14 61 views
0

我有一個批處理文件,它調用其他程序打開並運行。我的批處理文件在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無濟於事。

+1

設置你的工作目錄。使用Task Scheduler啓動的批處理有另一個「homedir」 – Stephan

+0

我還要檢查您的電源選項,並確保硬盤在待機時不會關閉。 –

+0

'IF EXIST'看起來不錯嗎?不知道我是否得到了正確的答案。隨着我所做的研究,我無法弄清楚是否可以。 –

回答

0

這似乎是問題在於VBScript。我使用.sendkey來注入密碼。這是計算機鎖定時的限制;所以我運氣不好。

+1

有些事情會讓我感到困擾,你爲什麼在批處理/ VB腳本中發送密碼?你正在設置自己的安全審計失敗!!如果你需要跨越域,您需要在目標機器上安排任務或運行它emotely。我們甚至不能再運行PSEXEC。它被認爲是「黑客工具」,即使是由「微軟研究員」(以前稱爲SysInternals)設計和構建的。 – Leptonator

+0

是的,這是真的!感謝您的反饋意見! –

0

中的.bat腳本可以使當前工作目錄是一個在它是由位於:

PUSHD "%~dp0" 

記住退出前POPD。

@ECHO OFF 
PUSHD "%~dp0" 

ECHO CD is now %CD% 
DIR Check1.msl 

START Check1.msl 
... 
+1

或者你可以使用'cd/d「%〜dp0」'和 –

+0

我做了一些編輯 - 我嘗試了你的'cd/d'%〜dp0''以及直接cd像'cd/d'C:\ Users \ Username \ Desktop \ NewFolder 「。似乎沒有任何作用 –

相關問題