もくじ
📝 はじめに
PowerShellでスクリプトを作っていて、
「実行時にユーザーへ入力を求めたい」
「毎回スクリプトを書き換えずに値を指定したい」
と感じたことはありませんか?
そんな場面で活躍するのが
Read-Host です。
実行中に入力を受け取り、その値を後続処理で使えるため、
対話型のスクリプトを簡単に作れます。
- 処理対象のパスやファイル名を都度入力したい
- ユーザーに確認しながら処理を進めたい
- 同じスクリプトを複数用途で使い回したい
✅ このコマンドでできること(要点)
- 実行時にユーザーから文字入力を受け取れる
- 入力内容を変数として扱える
- 表示するメッセージを自由に指定できる
- 簡単な対話型スクリプトを作れる
✅ Read-Host でできること
Read-Host は、
PowerShell実行中にユーザーへ入力を促し、
その入力値を文字列として受け取るためのコマンドです。
バッチ処理のように固定値で動かすのではなく、
実行する人が値を決める仕組みを簡単に組み込めます。
考え方としては、「実行中に質問して答えを受け取る」イメージです。
🧩 基本構文
$value = Read-Host "表示するメッセージ"
入力された内容は、指定した変数に文字列として格納されます。
▶ 基本的な使い方(まずこれだけ)
🔹 文字列を入力して受け取る
$name = Read-Host "名前を入力してください"
$name
入力した文字列がそのまま表示されれば、正しく受け取れています。
この結果が表示されていれば問題ありません。
🔹 パスを入力して処理に使う
$path = Read-Host "処理したいパスを入力してください"
Test-Path $path
入力したパスに応じて True / False が表示されます。
エラーが出なければ正常に実行できています。
🛠 よく使われる指定例
🔹 入力値を条件分岐に使う
$answer = Read-Host "続行しますか? (y/n)"
if ($answer -eq "y") {
"処理を続行します"
} else {
"処理を中止します"
}
🔹 数値として扱う
$num = Read-Host "数値を入力してください"
[int]$num + 10
Read-Host の戻り値は文字列のため、
数値として使う場合は型変換します。
💼 実務でよく使う使用例(応用)
🔹 フォルダを指定してファイル一覧を表示
$dir = Read-Host "フォルダパスを入力してください"
Get-ChildItem $dir
🔹 ユーザー名を入力してログに記録
$user = Read-Host "ユーザー名を入力してください"
"$user が処理を実行しました" | Out-File log.txt -Append
- Test-Path と併用して入力値を検証
- Get-ChildItem と組み合わせて対象指定
- Out-File で入力内容をログ化
🧩 よくある勘違い・つまずきポイント
- 入力値は自動的に数値にはならない
- 何も入力しないと空文字になる
- 改行や空白もそのまま含まれる
- パス入力時の全角文字に注意が必要
- 非対話環境では使えない場合がある
🔄 cmdとの違いについて
cmdでは set /p を使って入力を受け取りますが、
PowerShellの Read-Host は
より直感的で、変数との連携も簡単です。
PowerShellでは、そのまま他のコマンドに渡せる点が大きな違いです。
⚠ エラー・うまく動かないときの確認ポイント
- 対話入力が許可されている環境か
- 入力値が想定どおりの形式か
- 数値処理で型変換を忘れていないか
- 空入力時の処理を考慮しているか
🧠 注意点
自動化を目的としたスクリプトでは、
Read-Host を使うと処理が止まるため注意が必要です。
対話が必要な場面に限定して使うのがおすすめです。
📌 まとめ
- Read-Host は実行時に入力を受け取るための基本コマンド
- 入力値は文字列として変数に格納される
- 条件分岐やファイル操作と組み合わせやすい
- 次は param を使った引数指定も試すと理解が深まる
🔎 PowerShellコマンドを探す
やりたいことからコマンドを探すこともできます。
- ファイルを削除したい
- 一覧を表示したい
- 文字列を検索したい
- 条件で絞り込みたい
- エラーや実行できない原因を調べたい
- ユーザー入力で処理を分けたい
- 対話型スクリプトを作りたい
