codexに似たようなスクリプトを出力できるであろうプロンプトを作れ、と言ったら以下のようなものが出力された。詳細だけど、正直大体のことは最近のLLMなら勝手に配慮してくれる気はする。:

あなたはWindows向けのPowerShell実装者です。以下仕様を厳密に満たすCLIツールを作成してください。GUIは不要です。

【目的】
複数の移行元フォルダを、指定した移行先ドライブへrobocopyで安全に移行する。
実行ログは移行先ドライブへ保存し、ターミナルには細かいファイル単位ログを出さない。
全件成功後のみ、削除前にverify結果の要約を表示して最終確認を取る。

【成果物】

  1. Run-FileMigration.ps1
  2. Start-FileMigration.cmd(ダブルクリックでターミナル起動→対話実行)
  3. 使い方(短く)

【必須仕様】

  1. 入力
  • 移行元: 複数指定可(カンマ区切り or 改行区切り)
    例: D:\src, D:\image\download, D:\画像ファイル, E:\movie
  • 移行先: ドライブ文字(例 H または H:
  1. バリデーション
  • 移行元はフルパスの既存フォルダのみ許可
  • 移行元と移行先が同一ドライブならエラー停止
  • ドライブ直下(例 D:\)を移行元としては禁止
  • エラー時は即停止し、理由を明確に表示
  1. 実行ロジック(各移行元ごとに順番実行)
  • コピー先は「移行元ドライブ以降の相対パス」を移行先ドライブに再現
    例: D:\a\b -> H:\a\b
  • 各移行元に対して以下4フェーズを実行
    • small: /E /MAX:4194304 /DCOPY:DAT /COPY:DAT /XJ /R:1 /W:1 /MT:64
    • mid: /E /MIN:4194304 /MAX:268435456 /DCOPY:DAT /COPY:DAT /XJ /R:1 /W:1 /MT:8
    • large: /E /MIN:268435456 /DCOPY:DAT /COPY:DAT /XJ /R:1 /W:1 /MT:1 /J
    • verify: /E /DCOPY:DAT /COPY:DAT /XJ /R:1 /W:1 /MT:128
  • ログは移行先ドライブ配下 \<dest>:\logs\... に保存(small/mid/large/verifyを分離)
  • ログは詳細をすべて残すこと(robocopyの詳細ログ)
  • ターミナルは簡易表示のみ(進行中フェーズ、成功/失敗、全体進捗)。ファイル単位の行は表示しない
  1. 失敗判定
  • robocopy終了コード 0~7 を成功、8以上 を失敗として即停止
  • 失敗時は以降の処理(削除確認含む)を行わない
  1. 削除前確認
  • 全件成功後のみ、各移行元のverifyログから「robocopy末尾サマリー(合計/コピー済み/スキップ/不一致/失敗/終了時刻)」を抽出して表示
  • その後、1回だけ質問:
    すべての移行元を削除しますか? (yes/no)
  • yes のときのみ全移行元を削除。noなら削除しない
  1. 文字コード
  • 日本語環境前提。robocopyログの読み取りはShift_JIS (CP932) を優先
  • スクリプト内メッセージは日本語で自然に表示
  • 文字化けしない実装にする
  1. UX
  • 実行開始時に「停止は Ctrl+C」で中断できることを明示
  • 初心者向けにメッセージをわかりやすくする

【実装制約】

  • 外部モジュール不使用(PowerShell標準のみ)
  • PowerShell 5.1/7 で動くよう配慮
  • GUI実装は不要

【出力形式】

  • まず Run-FileMigration.ps1 の全コード
  • 次に Start-FileMigration.cmd の全コード
  • 最後に実行例を2~3行
  • 曖昧な説明ではなく、実行可能な完成コードを出してください