ChatGPTによるコマンド生成の参考事例

AI を活用して初稿スクリプトやコマンドを素早く手に入れ、手作業コストを減らす方法を紹介します。適切なプロンプト設計生成結果のブラッシュアップがポイントです。


  1. 概要
  2. プロンプト設計のポイント
  3. 事例① WinSCP スクリプト生成
  4. 事例② バッチファイル生成
  5. 事例③ PowerShell スクリプト生成
  6. ベストプラクティス
  7. まとめ

1. 概要

ChatGPT に適切な指示(プロンプト)を与えることで、WinSCP スクリプトバッチファイルPowerShell スクリプトの雛形を自動生成できます。

  • スピード: 手書きに比べて 5~10 倍速
  • 標準フォーマット: オプションやエラー処理を含んだコード
  • カスタマイズ: 要件変更にもすぐ対応

2. プロンプト設計のポイント

  1. ターゲット言語/環境を明確に
    • 例: 「Windows バッチファイル」「PowerShell」「WinSCP.com」
  2. 目的と要件を具体的に
    • 「毎日深夜 2 時に差分バックアップ」「SFTP 鍵認証を使う」など
  3. 出力形式を指定
    • コードブロック、コメント行、ERRORLEVEL 判定など
  4. 不要要素の排除
    • 対話プロンプトの抑制設定(option batch on)など

3. 事例① WinSCP スクリプト生成

プロンプト例

Windows の WinSCP.com で
・SFTP 接続(鍵認証)
・ローカル C:\Backup\Site をリモート /home/user/site にミラー同期
・差分のみ同期
・対話プロンプト抑制
のスクリプトをコードブロックで出力してください。

ChatGPT の出力例

option batch on
option confirm off

open sftp://user@example.com/ -privatekey="C:\keys\id_rsa.ppk" -hostkey="ssh-rsa 2048 xx:xx:xx"
lcd "C:\Backup\Site"
cd "/home/user/site"
synchronize remote
close
exit
  • option batch on / confirm off
  • -privatekey で鍵認証
  • synchronize remote でローカル→リモート同期

4. 事例② バッチファイル生成

プロンプト例

robocopy を使い、
・C:\Projects\MySite を D:\Backup\MySite に差分ミラーリング
・ログを C:\Logs\backup.log に出力
・失敗時に ERRORLEVEL を判定しログに結果を追記
するバッチファイル (.bat) のコードを出力してください。

ChatGPT の出力例

@echo off
set SRC=C:\Projects\MySite
set DST=D:\Backup\MySite
set LOG=C:\Logs\backup.log

robocopy "%SRC%" "%DST%" /MIR /Z /NP /R:3 /W:5 >> "%LOG%" 2>&1

if %ERRORLEVEL% GEQ 8 (
  echo [%date% %time%] Backup failed with code %ERRORLEVEL% >> "%LOG%"
) else (
  echo [%date% %time%] Backup succeeded >> "%LOG%"
)
  • >> でログ追記
  • if %ERRORLEVEL% で成否判定

5. 事例③ PowerShell スクリプト生成

プロンプト例

PowerShell で
・フォルダ C:\Data を D:\Archive\yyyyMMdd 形式のサブフォルダにコピー
・失敗時はエラーメッセージを C:\Logs\PSBackup.log に書く
コード例を示してください。

ChatGPT の出力例

$date = Get-Date -Format 'yyyyMMdd'
$source = 'C:\Data'
$dest = "D:\Archive\$date"
$log = 'C:\Logs\PSBackup.log'

Try {
    Copy-Item -Path $source -Destination $dest -Recurse -Force -ErrorAction Stop
    "$(Get-Date) Backup succeeded" | Out-File $log -Append
}
Catch {
    "$(Get-Date) Backup failed: $_" | Out-File $log -Append
}
  • Get-Date -Format で日付取得
  • Try/Catch でエラー制御

6. ベストプラクティス

  • 少しずつ試す: まずは単一コマンドの生成 → 段階的に複雑化
  • プロンプトに例を含める: 期待するコード例を先に示すと精度向上
  • AI 出力を必ずレビュー: セキュリティ/パスワード露出などをチェック
  • テンプレート化: 生成結果を社内標準テンプレートに当てはめる

7. まとめ

  • ChatGPT を使えば、WinSCP スクリプト、バッチファイル、PowerShell コードを瞬時に生成可能。
  • プロンプト設計が精度を左右するため、目的と要件を明確に伝えることが成功の鍵。
  • 生成したコードは 自己レビューテスト実行 を行い、安全かつ確実な運用を実現しましょう。

▶ 次は ローカル解析ツールに AI を組み合わせるアイデア ページで、ログ分析への AI 活用を学び効率をさらに高めましょう。

上部へスクロール