本ページでは、Windows のバッチファイルとPowerShell スクリプトを使った自動化の「簡単な例」と、その作成・実行手順をステップバイステップで解説します。初めてスクリプトを触る方でも迷わないよう、最小構成のサンプルを用意しました。
- 準備:フォルダとファイルの配置
- 例1:夜間バックアップ(バッチファイル)
- 2.1 スクリプト作成
- 2.2 手動実行テスト
- 2.3 タスクスケジューラ登録
- 例2:日次ログ収集(PowerShell)
- 3.1 スクリプト作成
- 3.2 実行ポリシー設定
- 3.3 手動&スケジュール実行
- まとめ
1. 準備:フォルダとファイルの配置
- スクリプト格納用フォルダ を作成
makefileC:\Automation\
backup.bat
collect_logs.ps1 - ログ置き場 や バックアップ先 のフォルダをあらかじめ用意
makefileC:\Backup\Site\
C:\Logs\Access\
2. 例1:夜間バックアップ(バッチファイル)
2.1 スクリプト作成
C:\Automation\backup.bat
をテキストエディタで新規作成- 以下を貼り付けて保存(ANSI/Shift-JIS で)
bat@echo off
REM ─────────────────────
REM 夜間バックアップ:ローカル→バックアップ
REM 毎日深夜 2:00 実行想定
REM ─────────────────────
set SOURCE=C:\Projects\MySite
set DEST=C:\Backup\Site
REM 差分同期
robocopy "%SOURCE%" "%DEST%" /MIR /Z /NP /R:2 /W:5
if %ERRORLEVEL% GEQ 8 (
echo [%date% %time%] バックアップ失敗 Error=%ERRORLEVEL% >> C:\Automation\backup.log
) else (
echo [%date% %time%] バックアップ成功 >> C:\Automation\backup.log
)
- ポイント:
robocopy
は Windows 標準。差分のみ同期し、再開モード(/Z
)にも対応。
2.2 手動実行テスト
- エクスプローラーで
backup.bat
をダブルクリック - コマンドプロンプトが開き、コピー状況が表示
C:\Automation\backup.log
を開き、実行結果を確認
2.3 タスクスケジューラ登録
Win + R
→taskschd.msc
でタスクスケジューラ起動- 「基本タスクの作成」
- 名前:夜間バックアップ
- トリガー:毎日 02:00
- 操作:プログラム/スクリプトに
C:\Automation\backup.bat
を指定
- 「最上位の特権で実行する」 にチェック
- 「完了」 → タスクを右クリック「実行」で動作確認
3. 例2:日次ログ収集(PowerShell)
3.1 スクリプト作成
C:\Automation\collect_logs.ps1
をテキストエディタで作成- 以下を貼り付けて UTF-8 BOM なし で保存
powershell# 日付取得
$date = Get-Date -Format 'yyyyMMdd'
# 接続情報
$winscp = "C:\Program Files (x86)\WinSCP\WinSCP.com"
$script = "C:\Automation\get_logs.txt"
$logdir = "C:\Logs\Access"
# WinSCP実行
Start-Process -FilePath $winscp -ArgumentList "/script=$script","/log=C:\Automation\getlog_$date.log" -Wait
# ダウンロード後リネーム
Rename-Item -Path "$logdir\access.log" -NewName "access_$date.log"
- WinSCP スクリプト
C:\Automation\get_logs.txt
も用意
textoption batch on
option confirm off
open sftp://user:pass@example.com/ -hostkey="ssh-rsa 2048 xx:xx:xx"
lcd "C:\Logs\Access"
get "/var/log/access.log"
exit
3.2 実行ポリシー設定
PowerShell スクリプトの実行を許可:
powershell
# 管理者権限 PowerShell で実行
Set-ExecutionPolicy RemoteSigned -Scope LocalMachine
3.3 手動&スケジュール実行
- 手動実行テスト
- PowerShell を開き、
powershellC:\Automation\collect_logs.ps1
C:\Logs\Access\access_YYYYMMDD.log
が生成されるか確認
- PowerShell を開き、
- タスクスケジューラ登録
- 名前:日次ログ収集
- トリガー:毎日 06:00
- 操作:
- プログラム/スクリプト:
powershell.exe
- 引数の追加:
-ExecutionPolicy RemoteSigned -File "C:\Automation\collect_logs.ps1"
- プログラム/スクリプト:
- 管理者特権で実行 → テスト実行
4. まとめ
- 例1 でバッチファイルを使った差分バックアップをマスター
- 例2 で PowerShell と WinSCP を組み合わせたログ収集を自動化
- いずれも 手動テスト → タスク登録 → 定期実行 の流れで確実に導入
- スクリプトの文字コードや実行権限を正しく設定し、トラブルを未然に防止しましょう!