SCHTASKS(タスクスケジューラ)
にメンテナンス済み
「毎日決まった時間にバックアップを実行したい」「PC 起動時に特定のスクリプトを自動実行したい」といった定期実行のニーズは、実務でよく発生します。
SCHTASKS コマンドを使用すると、Windows のタスクスケジューラをコマンドラインから操作し、バッチファイルやプログラムのスケジュール実行を設定できます。
タスクを作成する(/CREATE)
基本構文
構文
SCHTASKS /CREATE /TN "タスク名" /TR "実行するコマンド" /SC スケジュール種別 [オプション]
| パラメータ | 説明 |
|---|---|
/TN | タスクの名前 |
/TR | 実行するプログラムやバッチファイルのパス |
/SC | スケジュールの種別(DAILY, WEEKLY, ONCE 等) |
/ST | 開始時刻(HH:MM 形式) |
/SD | 開始日(YYYY/MM/DD 形式) |
スケジュール種別一覧
| 種別 | 説明 |
|---|---|
MINUTE | 指定した分間隔で実行 |
HOURLY | 指定した時間間隔で実行 |
DAILY | 毎日または指定日間隔で実行 |
WEEKLY | 毎週指定した曜日に実行 |
MONTHLY | 毎月指定した日に実行 |
ONCE | 一度だけ実行 |
ONSTART | システム起動時に実行 |
ONLOGON | ログオン時に実行 |
ONIDLE | アイドル時に実行 |
毎日決まった時間に実行する
毎日23時にバックアップを実行
schtasks /create /tn "DailyBackup" /tr "C:\Scripts\backup.cmd" /sc daily /st 23:00
- □ ×
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
C:\users\user>schtasks /create /tn "DailyBackup" /tr "C:\Scripts\backup.cmd" /sc daily /st 23:00
成功: スケジュール タスク “DailyBackup” は正常に作成されました。
C:\users\user>
数日おきに実行する
/MO オプションで間隔を指定できます。
3日おきに実行
schtasks /create /tn "CleanupTask" /tr "C:\Scripts\cleanup.cmd" /sc daily /mo 3 /st 02:00
毎週指定した曜日に実行する
/D オプションで曜日を指定します。
毎週月曜と金曜の9時に実行
schtasks /create /tn "WeeklyReport" /tr "C:\Scripts\report.cmd" /sc weekly /d MON,FRI /st 09:00
| 曜日の指定 | 意味 |
|---|---|
MON | 月曜日 |
TUE | 火曜日 |
WED | 水曜日 |
THU | 木曜日 |
FRI | 金曜日 |
SAT | 土曜日 |
SUN | 日曜日 |
PC 起動時・ログオン時に実行する
システム起動時
schtasks /create /tn "StartupScript" /tr "C:\Scripts\startup.cmd" /sc onstart /ru SYSTEM
ログオン時
schtasks /create /tn "LoginScript" /tr "C:\Scripts\login.cmd" /sc onlogon
/RU オプションについて
/RU オプションでタスクを実行するユーザーアカウントを指定できます。SYSTEM
を指定すると、ユーザーがログオンしていなくてもタスクが実行されます。
一度だけ実行する
指定した日時に1回だけ実行
schtasks /create /tn "OneTimeTask" /tr "C:\Scripts\migrate.cmd" /sc once /st 03:00 /sd 2026/03/15
登録済みのタスクを一覧表示する(/QUERY)
schtasks /query /tn "DailyBackup"
- □ ×
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
C:\users\user>schtasks /query /tn "DailyBackup" /fo list
フォルダ: \
HostName: DESKTOP-USER
タスク名: \DailyBackup
次回の実行時刻: 2026/03/11 23:00:00
状態: 準備完了
C:\users\user>
すべてのタスクを一覧表示
schtasks /query /fo table
CSV 形式で出力
CSV形式で出力してファイルに保存
schtasks /query /fo csv > tasks.csv
チェック
/FO
オプションで出力形式を指定できます。TABLE(テーブル)、LIST(リスト)、CSV(カンマ区切り)の
3 種類があります。
タスクを削除する(/DELETE)
schtasks /delete /tn "DailyBackup" /f
- □ ×
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
C:\users\user>schtasks /delete /tn "DailyBackup" /f
成功: スケジュール タスク “DailyBackup” は正常に削除されました。
C:\users\user>
/F オプションを付けると、確認プロンプトなしで削除されます。
タスクを手動で実行する(/RUN)
登録済みのタスクを即座に実行するには /RUN を使用します。
schtasks /run /tn "DailyBackup"
タスクを終了する(/END)
実行中のタスクを停止するには /END を使用します。
schtasks /end /tn "DailyBackup"
実践例:バックアップの自動化
以下の例では、バックアップバッチファイルを作成し、タスクスケジューラに登録するまでの一連の流れを示します。
setup_backup.cmd
@echo off
setlocal
rem バックアップスクリプトの作成先
set SCRIPT_PATH=C:\Scripts\daily_backup.cmd
rem バックアップスクリプトを作成
echo @echo off > "%SCRIPT_PATH%"
echo robocopy "C:\Users\user\Documents" "D:\Backup\Documents" /MIR /R:3 /W:5 /LOG+:"D:\Backup\Logs\backup.log" /NP >> "%SCRIPT_PATH%"
rem タスクスケジューラに登録
schtasks /create /tn "AutoBackup" /tr "%SCRIPT_PATH%" /sc daily /st 23:00 /f
echo セットアップが完了しました。
echo 毎日 23:00 にバックアップが自動実行されます。
endlocal
管理者権限について
SCHTASKS コマンドでタスクを作成・削除するには、管理者権限が必要な場合があります。「アクセスが拒否されました」というエラーが出る場合は、管理者としてコマンドプロンプトを起動してください。
まとめ
| 操作 | コマンド |
|---|---|
| タスクの作成 | schtasks /create /tn "名前" /tr "パス" /sc 種別 /st 時刻 |
| タスクの一覧表示 | schtasks /query |
| タスクの削除 | schtasks /delete /tn "名前" /f |
| タスクの手動実行 | schtasks /run /tn "名前" |
| タスクの停止 | schtasks /end /tn "名前" |
関連記事
練習問題
#コマンドプロンプト
#バッチファイル
#SCHTASKS
#自動化
#タスクスケジューラ