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 "名前"

関連記事

練習問題

練習問題

ユーザーがPCにログオンしたタイミングでバッチファイルを自動実行するには、/SC オプションにどの値を指定しますか?

回答がサーバーに送信されることはありません
#コマンドプロンプト #バッチファイル #SCHTASKS #自動化 #タスクスケジューラ