2015-10-15 69 views
0

我需要做誰禁用所有任務的批處理文件的所有任務,到目前爲止,我已經得到了這一點:禁止使用的schtasks

@echo OFF 
for /f "tokens=2 delims=:" %%i in ('schtasks /Query /FO LIST ^| findstr "Nombre de tarea:"') do (call :subroutine "%%i") 

:subroutine 
set TASKNAME=%%i 
echo %TASKNAME%:%1 
schtasks /change /tn=%TASKNAME%:%1 /disable 
GOTO :eof 

因此,即時通訊相當使用grep壞,它已經2年未不必使用它,這就是「FINDSTR」「吐奶」:

%i:" Interactivo/En segundo plano" 
%i:" ADMSH-PC" 
%i:" \Microsoft\Windows\Windows Media Sharing\UpdateLibrary" 

,所以我得到每個任務3行,也是我唯一需要的「任務名稱」爲TN屬性,而不是整個路徑

任何幫助/提示?謝謝。

回答

0
for /f "tokens=1 delims=," %%a in (
    'schtasks /Query /FO csv ^| find /V "Task name" ^| find /V "Disabled"' 
) do (
    schtasks /change /tn %%a /disable 
) 

注意:如果顯示此命令「schtasks /Query /FO csv」的樣品,我可以編輯命令的語言環境

+0

「Nombre de tarea」,「Horapróximaejecución」,「Estado」 「\ Microsoft \ Windows \ Time Synchronization \ SynchronizeTime」,「18/10/2015 1:00:00」,「 Listo」 – Kukisambas

+0

Im還正在測試它,它不會找到/ V「啓用」? – Kukisambas

+0

它的工作,只需要運行它作爲管理員。謝謝保羅! – Kukisambas

0

如果您禁用所有任務,停止任務計劃程序服務會不會更容易?

0

好一點,但是如果你想禁止他們我建議把你的腳本到一個VBS文件:

你可以列出所有任務,此代碼:

strComputer = "." 
Set objWMIService = GetObject("winmgmts:" _ 
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set colScheduledJobs = objWMIService.ExecQuery _ 
    ("Select * from Win32_ScheduledJob") 
For Each objJob in colScheduledJobs 
    Wscript.Echo "Caption: " & objJob.Caption 
    Wscript.Echo "Command: " & objJob.Command 
    Wscript.Echo "Days Of Month: " & objJob.DaysOfMonth 
    Wscript.Echo "Days Of Week: " & objJob.DaysOfWeek 
    Wscript.Echo "Description: " & objJob.Description 
    Wscript.Echo "Elapsed Time: " & objJob.ElapsedTime 
    Wscript.Echo "Install Date: " & objJob.InstallDate 
    Wscript.Echo "Interact with Desktop: " & objJob.InteractWithDesktop 
    Wscript.Echo "Job ID: " & objJob.JobID 
    Wscript.Echo "Job Status: " & objJob.JobStatus 
    Wscript.Echo "Name: " & objJob.Name 
    Wscript.Echo "Notify: " & objJob.Notify 
    Wscript.Echo "Owner: " & objJob.Owner 
    Wscript.Echo "Priority: " & objJob.Priority 
    Wscript.Echo "Run Repeatedly: " & objJob.RunRepeatedly 
    Wscript.Echo "Start Time: " & objJob.StartTime 
    Wscript.Echo "Status: " & objJob.Status 
    Wscript.Echo "Time Submitted: " & objJob.TimeSubmitted 
    Wscript.Echo "Until Time: " & objJob.UntilTime 
Next 

http://blogs.technet.com/b/heyscriptingguy/archive/2004/09/22/how-can-i-manage-scheduled-tasks-using-scripts.aspx

抓住所有任務的名稱併爲每個任務運行一個schtasks /change /tn=%TASKNAME%:%1 /禁用。

+0

如果我可以使用VS像你的建議我會使用WScript的或C#,但我已經被命令只通過簡單的批次來實現它,所以他們可以在一個簡單的.bat中執行它,謝謝你的建議。 – Kukisambas