本ページでは、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 offREM ─────────────────────REM 夜間バックアップ:ローカル→バックアップREM 毎日深夜 2:00 実行想定REM ─────────────────────set SOURCE=C:\Projects\MySiteset DEST=C:\Backup\SiteREM 差分同期robocopy "%SOURCE%" "%DEST%" /MIR /Z /NP /R:2 /W:5if %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 onoption confirm offopen 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 を組み合わせたログ収集を自動化
- いずれも 手動テスト → タスク登録 → 定期実行 の流れで確実に導入
- スクリプトの文字コードや実行権限を正しく設定し、トラブルを未然に防止しましょう!
