簡単な例と実行手順

本ページでは、Windows のバッチファイルPowerShell スクリプトを使った自動化の「簡単な例」と、その作成・実行手順をステップバイステップで解説します。初めてスクリプトを触る方でも迷わないよう、最小構成のサンプルを用意しました。


  1. 準備:フォルダとファイルの配置
  2. 例1:夜間バックアップ(バッチファイル)
    • 2.1 スクリプト作成
    • 2.2 手動実行テスト
    • 2.3 タスクスケジューラ登録
  3. 例2:日次ログ収集(PowerShell)
    • 3.1 スクリプト作成
    • 3.2 実行ポリシー設定
    • 3.3 手動&スケジュール実行
  4. まとめ

1. 準備:フォルダとファイルの配置

  1. スクリプト格納用フォルダ を作成
    makefile
    C:\Automation\
    backup.bat
    collect_logs.ps1
  2. ログ置き場バックアップ先 のフォルダをあらかじめ用意
    makefile
    C:\Backup\Site\
    C:\Logs\Access\

2. 例1:夜間バックアップ(バッチファイル)

2.1 スクリプト作成

  1. C:\Automation\backup.bat をテキストエディタで新規作成
  2. 以下を貼り付けて保存(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 )
  3. ポイント: robocopy は Windows 標準。差分のみ同期し、再開モード(/Z)にも対応。

2.2 手動実行テスト

  1. エクスプローラーで backup.bat をダブルクリック
  2. コマンドプロンプトが開き、コピー状況が表示
  3. C:\Automation\backup.log を開き、実行結果を確認

2.3 タスクスケジューラ登録

  1. Win + Rtaskschd.msc でタスクスケジューラ起動
  2. 「基本タスクの作成」
    • 名前:夜間バックアップ
    • トリガー:毎日 02:00
    • 操作:プログラム/スクリプトに C:\Automation\backup.bat を指定
  3. 「最上位の特権で実行する」 にチェック
  4. 「完了」 → タスクを右クリック「実行」で動作確認

3. 例2:日次ログ収集(PowerShell)

3.1 スクリプト作成

  1. C:\Automation\collect_logs.ps1 をテキストエディタで作成
  2. 以下を貼り付けて 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"
  3. WinSCP スクリプト C:\Automation\get_logs.txt も用意
    text
    option 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 手動&スケジュール実行

  1. 手動実行テスト
    • PowerShell を開き、
      powershell
      C:\Automation\collect_logs.ps1
    • C:\Logs\Access\access_YYYYMMDD.log が生成されるか確認
  2. タスクスケジューラ登録
    • 名前:日次ログ収集
    • トリガー:毎日 06:00
    • 操作:
      • プログラム/スクリプト: powershell.exe
      • 引数の追加: -ExecutionPolicy RemoteSigned -File "C:\Automation\collect_logs.ps1"
    • 管理者特権で実行 → テスト実行

4. まとめ

  • 例1 でバッチファイルを使った差分バックアップをマスター
  • 例2 で PowerShell と WinSCP を組み合わせたログ収集を自動化
  • いずれも 手動テストタスク登録定期実行 の流れで確実に導入
  • スクリプトの文字コード実行権限を正しく設定し、トラブルを未然に防止しましょう!

上部へスクロール