2016-11-06 48 views
-1

我正在嘗試編寫一個文件來殺死每個運行的任務。我知道如何殺死這些任務,但如果()然後命令,我需要幫助寫一個。所有我想要做的就是它讓到如果在命令提示符下關閉然後計算機註銷。還要提到,我知道如何執行shutdown/l的log off命令。任何人都可以幫助我嗎?我需要幫助編寫if()然後命令

+0

或者如果沒有辦法做到這一點,也許可以重新啓動批處理文件,而不會被點擊觸發。或者使批處理文件無法關閉的方法。 – Addison

回答

0

使用autohotkey在後臺運行此:

@echo off 
:loopme 
start /WAIT "c:\path\to\batch.file.bat" 
goto loopme 

提出,在啓動文件夾中的開始菜單......然後......瞧!

希望這有助於! 〜CSS

0

也許有它檢查如果主批處理文件的PID存在監視批處理文件...
主文件:

@echo off 
setlocal 
title Main Batch File 
set T=%TEMP%\sthUnique.tmp 
wmic process where (Name="WMIC.exe" AND CommandLine LIKE "%%%TIME%%%") get ParentProcessId /value | find "ParentProcessId" >%T% 
set /P A=<%T% 
set PID=%A:~16% 
echo %PID% > pid.pref 
rem The rest of the file is down here... 

獲取當前PID並將其存儲在pid.pref
監視器批處理文件:

@echo off 
setlocal 
title Monitor 
start mainfile.bat 
ping localhost -n 1 -w 2000 >NUL 
< pid.pref (set /p pid=) 
:loop 
tasklist /fi "PID eq %pid%" |find ":" > nul 
if "%ERRORLEVEL%"=="1" (
    shutdown.exe /s /t 00 
    exit 
) 
goto loop 

監視器批處理文件檢查是否具有相同PID的一個進程存在,如果沒有它關閉計算機。現在,如果一個進程在主批處理文件關閉後打開並且Windows爲新進程提供相同的PID,那麼您可能會感到不幸,但這種情況極不可能。
順便說一下,首先啓動顯示器,它將自行啓動主文件。

注:我有不是測試了這個。