コンテンツにスキップ

PowerShell / WezTerm コピペ安全運用

<repo> はこのプロジェクトのローカルクローン先(例: D:\work\codex-agent-loop-notes)。

目的

Firefox で読んだコマンドを WezTerm の PowerShell 7 に貼ったとき、改行・折り返し・シェル方言違いで壊れないようにする。

基本の形

PowerShell 7 では、複数コマンドを ; でつなぐ。

cd "<repo>"; .\.venv\Scripts\mkdocs.exe serve

これは次の2つを1行で実行している。

  1. 対象フォルダへ移動
  2. venv 内の mkdocs.exe を実行

長いコマンドはパス変数に逃がす

長いパスは $p に入れる。

$p = "<repo>"; cd $p; .\.venv\Scripts\mkdocs.exe serve

この形なら、表示上の折り返しがあっても意味が崩れにくい。

venv は activate しなくてもよい

Python 仮想環境は、毎回 activate しなくても直接呼べる。

.\.venv\Scripts\python.exe -m pip install -r requirements.txt; .\.venv\Scripts\python.exe -m mkdocs serve

activate が必要な場合

PowerShell 7 用はこれ。

.\.venv\Scripts\Activate.ps1

実行ポリシーで止まる場合は、そのPowerShellプロセスだけ一時的に許可する。

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass; .\.venv\Scripts\Activate.ps1

bash と混ぜない

PowerShell 7 向け資料で避けるもの。

避ける例 理由
source .venv/bin/activate Linux / macOS / WSL 向け
.venv/Scripts/activate Git Bash 向けで、PowerShell 用ではない
export NAME=value bash構文
cmd1 && cmd2 PowerShellでも動く場合はあるが、主回答では ; を優先
mkdocs serve だけ venv の PATH 状態に依存する

よくあるエラー

The term '<path>' is not recognized

原因はたいてい、cd とパスが別行になっていること。

悪い例:

cd
<repo>

良い例:

cd "<repo>"

Cannot find path ...

パスの typo。今回の例では最後の s が重要。

codex-agent-loop-note   ← 間違い
codex-agent-loop-notes  ← 正しい

停止方法

mkdocs serve や dev server を止めるときは、PowerShell で Ctrl+C