
當我運行這個時:
schtasks.exe /query /tn "GoogleUpdateTaskMachineUA"
我明白了:
Folder: \
TaskName Next Run Time Status
======================================== ====================== ===============
GoogleUpdateTaskMachineUA N/A Disabled
有沒有辦法只檢索狀態?
答案1
嘗試schtasks /query
使用/v
詳細輸出和/fo list
清單格式的選項。然後用find
指令過濾結果。
schtasks /query /tn "GoogleUpdateTaskMachineUA" /v /fo list | find "Status:"
你得到這樣的字串
Status: Running
若要提取狀態值,請使用for
命令:
for /f "delims=: tokens=2" %a in ('schtasks /query /tn "GoogleUpdateTaskMachineUA" /v /fo list ^| find "Status:"') do @echo %a
- 若要在批次檔中使用,請替換
%a
為%%a
- 在指令中使用
|
或等轉義符號>
for
^
答案2
除非您確實必須使用schtasks.exe
,否則請使用 PowerShell 及其所有進階輸出和格式選項:
Get-ScheduledTask | ? TaskName -eq GoogleUpdateTaskMachineUA | Select State | ft -AutoSize
或者
(Get-ScheduledTask | Where TaskName -eq GoogleUpdateTaskMachineUA ).State
答案3
有沒有辦法只檢索狀態?
使用以下命令:
for /f "usebackq skip=3 tokens=4" %a in (`schtasks.exe /query /tn "GoogleUpdateTaskMachineUA"`) do @echo %a
筆記:
skip=3
- 忽略標題行tokens=4
- 取得第四個令牌(狀態列中的值)- 若要在批次檔中使用,請替換
%a
為%%a
用法範例:
F:\test>schtasks.exe /query /tn "GoogleUpdateTaskMachineUA"
Folder: \
TaskName Next Run Time Status
======================================== ====================== ===============
GoogleUpdateTaskMachineUA 03/02/2016 12:17:00 Ready
F:\test>for /f "usebackq skip=3 tokens=4" %a in (`schtasks.exe /query /tn "GoogleUpdateTaskMachineUA"`) do @echo %a
Ready
進一步閱讀
- Windows CMD 命令列的 AZ 索引- 與 Windows cmd 行相關的所有內容的絕佳參考。
- 對於 /f- 根據另一個指令的結果循環指令。
- 計劃任務- 建立/編輯計畫作業/任務。可以在本機或遠端電腦上建立作業。
答案4
如果您正在使用 Windows 7 編寫 Powershell 腳本並且無法使用Get-ScheduledTask
,您可以考慮使用:
$status = ((schtasks /query /S 'yourServer' /TN yourTask)[4] -split ' +')[2]
它看起來像這樣:
### Running this:
schtasks /query /S 'yourServer' /TN yourTask
### Leads to the output below.
Folder: \
TaskName Next Run Time Status
======================================== ====================== ===============
yourTask N/A Running
### Running this:
$status = ((schtasks /query /S 'yourServer' /TN yourTask)[4] -split ' +')[2]
Write-Host "$($status)"
### Leads to the output below
Running