
これを実行すると:
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
- 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 コマンド ラインに関連するあらゆることに関する優れたリファレンス。
- /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