マイナビニュースマイナビ
tech+  Powered by  マイナビニュース マイナビニュース マイナビニュース
  • 企業IT
    • ITインフラ
    • セキュリティ
    • 開発/エンジニア
    • SaaS
    • 企業動向
    • マーケティング
    • キャリア/スキル
    • クラウド
    • ワークスタイル

    Sponsored

    • 無線LAN / Wi-Fi
    • Lenovoの企業支援+
    • デル・テクノロジーズ
    • Python学習
    • マウスコンピューター(法人)
    • 地域のスマート化
    • OPEN DX
    • マネーフォワード クラウド
    • 顧客データ活用
    • ノーコードツール kintone
    • プライバシー保護
    • 電通
    • 情シス業務改革特集
    • セキュリティ特集
    • 伊藤忠テクノソリューションズ
  • テクノロジー
    • 半導体
    • カーエレクトロニクス
    • HPC
    • 環境技術
    • サイエンス
    • 宇宙・航空
    • ものづくり

    Sponsored

    • IoT
    • インテルのAI × ITインフラ
  • 導入事例
    • 業種から探す
    • テーマから探す
    • 製品/ソリューションから探す
  • ホワイトペーパー
    コンテンツから探す
    • 事例
    • レポート
    • インタビュー
    • ソリューション
    テーマから探す
    • クラウド/データセンター
    • 仮想化
    • ハードウェア
    • スマートモバイル
    • ネットワーク
    • システム運用管理
    • CRM/SFA/マーケティング
    • 経営とIT
    • セキュリティ
    • 業務系システム
    • データ分析
    • 情報系システム
    • システム開発
    • ハードウェア開発
  • セミナー
  • はたらくの未来へ/日本HP
  • 生成AI時代のソフトウェア開発
おすすめのキーワード
  • クラウド
  • 導入事例
  • 生成AI
  • LLM
  • AI
  • お笑い
  • ドラマ
  • ビジネス用語
キーワード一覧
チャンネル一覧
  • 総合トップ
  • TECH+
  • +Digital
  • PREMIUM
  • ウーマン
  • ワーク&ライフ
  • 就職応援
  • エンタメ
  • ホビー
  • 特集
  • 地域活性
  • IIJ
  • 読者コーナー
  • おすすめナビ
  • マイナビBOOKS
関連サイト
Techplus menubanner
Navi seminar
マイナビニュースについて
  • SNSアカウント一覧
  • メールマガジン登録
マイナビニュース公式SNS
  • ]
お知らせ
プライバシーポリシーを一部改訂しました
  • TECH+
  • 企業IT
  • キャリア/スキル
  • Windows PowerShellでファイルダイアログを表示

連載

第43回
なんとなくコマンド

Windows PowerShellでファイルダイアログを表示

掲載日  2023/03/22 12:10

更新日  2023/03/22 14:02

鍵アイコン
  • PowerShell
  • コマンド活用

今回はWindows PowerShellでファイルダイアログを表示します。なお、PowerShell Coreでは動作しません。Windows PowerShell専用です。実行する場合はISEから行ってください。今回はファイルダイアログを表示するのが目的なので何かややこしいファイル処理をしたりテキストデータを加工処理することはしません。要するに目的はファイルパスを求めることだからです。
macOSでのPowerShellでのダイアログ表示については次回説明します。ちなみにmacOSのbash,zshでもファイルダイアログを表示できます。

コマンド処理の不安

 コマンドラインからコマンドを入力して処理する場合に不安になるのが、指定したファイルパスが正しいかどうかというのがあります。パスの指定は1文字間違えただけで大変なことになってしまうことがあります。例えば./はカレントディレクトリを示しますが、/ならルートディレクトリを示します(Windowsは環境によって¥または\記号になります。PowerShellでは/,¥,\のいずれも使えます)。このためカレントディレクトリ以下のファイル等を消すために

rm -rf ./

と入力するはずが間違えて.の入力を忘れるとルートディレクトリ以下を消す指定になってしまいます。

rm -rf /

大昔は指定を間違えるとルートディレクトリ以下をまるごと消してしまうということもありましたが、今のOSでは簡単にはルートディレクトリを消すようなことはできなくなっています。ですので、上記コマンドを入力してもルートディレクトリは簡単には消えません。

ファイルを消す以外にも不安要素というか困る場合もあります。特にワイルドカード/正規表現などでうまくピックアップ(選択)できないファイルを処理するような場合です。つまり規則性がないファイル名のファイルを処理したい場合などです。このような場合は別途処理するファイルリストを用意しておき、それを読み込んで処理させたりする方法があります。とは言え、1回しか処理しないのに、そのようなリストを作るのは面倒です。

そのような場合はGUIのファイル選択ダイアログやファイル保存ダイアログを使えば解決できます。 今回扱うのはPowerShellのファイル選択ダイアログとファイル保存ダイアログです。これらは数多くのプロパティを持っているため、詳細については以下のページを参照してください。

・OpenFileDialog クラス
https://learn.microsoft.com/ja-jp/dotnet/api/system.windows.forms.openfiledialog?view=windowsdesktop-6.0
・SaveFileDialog クラス
https://learn.microsoft.com/ja-jp/dotnet/api/system.windows.forms.savefiledialog?view=windowsdesktop-7.0

 macOSの場合はPowerShellといえどもWindowsと同じスクリプトを実行してファイルダイアログを表示することができません。ここらへんはOS依存という部分があるためです。そこでmacOSのPowerShellはAppleScriptを利用してファイル選択ダイアログ、ファイル保存ダイアログを表示することになります。ここらへんについては次回説明します。

WindowsのPowerShellでファイル選択ダイアログを表示

 まず、WindowsのPowerShellでファイル選択ダイアログを表示してみましょう。単純にファイル選択ダイアログを表示する場合は以下の一行でできます。直接PowerShellのコマンドラインで入力すればOKです。ただし、これは表示するだけです。

(New-Object System.Windows.Forms.OpenFileDialog).ShowDialog()

上記のコマンドを実行して何かファイルを選択すると画面にはOKの文字が表示されます。

ファイルが選択されずキャンセルされた場合はCancelの文字が表示されます。

ここで必要なのは選択されたファイルのファイルパスです。そこで今度は選択されたファイルパスを表示するスクリプトを作成します。メモ帳でもVSCodeでもよいのでとにかくエディタで以下のように入力しf2.ps1という名前で保存します。わかりやすくするために、ここではデスクトップ上に保存しています。

($dlg=New-Object System.Windows.Forms.OpenFileDialog).ShowDialog()
$dlg.FileName

保存したらカレントディレクトリをデスクトップにします。プロンプト部分で現在のディレクトリは確認できます。また、pwdと入力しても確認できます。

準備ができたらコマンドラインから.¥f2.ps1と入力します。ファイル選択ダイアログが表示されるのでファイルを1つ選択して開くボタンを押します。

ファイルが選択された場合はOKの文字の次の行に選択したファイルのパスが表示されます。

ファイルを選択せずにキャンセルした場合はCancelの文字が表示され、その次の行には何も表示されません。

今度はファイルが選択された場合のみファイルパスを表示するように変更します。以下のように入力しf3.ps1というファイル名で保存します。

if (($dlg=New-Object System.Windows.Forms.OpenFileDialog).ShowDialog() -eq "OK") {
    $dlg.FileName
}

保存したら実行してみましょう。ファイルを選択した場合のみパスが表示され、キャンセルされた場合は何も表示されません。

ここまでできてしまえば、あとはいろいろな用途で利用できます。例えば選択したファイルの内容を表示したい場合は以下のようにコマンドを入力します。

.¥f3.ps1 | %{ Get-Content $_ }

ダイアログで複数のファイルを選択する

 ここまでは1つのファイルしか選択できないダイアログでしたが、複数のファイルを選択したい場合もあります。複数のファイルを選択できるようにするにはダイアログオブジェクトのMultiselectプロパティをtrueにします。つまり$trueを代入すれば複数のファイルを選択できるようになります。(冒頭に示したOpenFileDialog クラスのページを参照)

 以下のようにスクリプトを入力しf4.ps1というファイル名で保存します。

$dlg=New-Object System.Windows.Forms.OpenFileDialog
$dlg.Multiselect=$true
if ($dlg.ShowDialog() -eq "OK") {
    $dlg.FileNames
}

保存したら実行してみましょう。今度は複数のファイルを選択できます。ダイアログの開くボタンをクリックすると選択したファイルのパスが表示されます。

選択した複数のファイルを連結して1つのテキストファイルにしてみましょう。不規則なファイル名であれば複数選択できるファイルダイアログは大変便利です。以下のように入力すると選択したファイルを連結してall.txtというファイルにまとめて保存します。

.¥f4.ps1 | %{ Get-Content $_ } > all.txt

ファイル保存ダイアログを表示する

 最後にファイル保存ダイアログを表示してみます。ファイル保存ダイアログはOpenFileDialogをSaveFileDialogの文字に変更するだけで使えます。
 以下のようにスクリプトを入力しf5.ps1というファイル名で保存します。

if (($dlg=New-Object System.Windows.Forms.SaveFileDialog).ShowDialog() -eq "OK") {
    $dlg.FileName
}

保存したら実行してみましょう。ファイル保存ダイアログが表示されるので保存するフォルダ先を選択しファイル名を入力します。ダイアログの保存ボタンをクリックすると入力したファイルのパスが表示されます。

 簡単な例としてSample Textの文字をファイル選択ダイアログで指定した場所とファイル名で保存してみましょう。以下のように入力します。ファイル保存ダイアログが表示されたら保存場所とファイル名を入力します。指定した場所にファイルが保存され、内容を確認するとSample Textになっているのがわかります。

.¥f5.ps1 | %{ 'Sample Text' > $_ }

コマンドラインでファイルダイアログを使いたい場合には今回のような方法で利用できます。上手に使ってミスを軽減できれば無駄な時間を費やさなくて済むでしょう。あと、ファイル選択ダイアログにはいろいろな機能(フィルタリング等)があるので、便利そうなプロパティがあれば積極的に使ってみるとよいかもしれません。

著者 仲村次郎
いろいろな事に手を出してみたものの結局身につかず、とりあえず目的の事ができればいいんじゃないかみたいな感じで生きております。

この連載の前後回

  • 第45回
    ジョークコマンドをインストールする
  • 第44回
    macOSのPowerShellでファイルダイアログを表示
  • 第43回
    Windows PowerShellでファイルダイアログを表示
  • 第42回
    コンピューター上の電卓機能(2)
  • 第41回
    コンピューター上の電卓機能(1)
この連載のバックナンバー

AIが勧める、あなたのための会員限定記事

  • 2026年の半導体市場はメモリ高騰で前年比62.7%増へ、Omdiaが予測を上方修正
    半導体

    鍵アイコン 2026年の半導体市場はメモリ高騰で前年比62.7%増へ、Omdiaが予測を上方修正

  • 工学院大など、M87近傍からの相対論的ジェットに伝播する「横波」を発見
    宇宙・航空

    鍵アイコン 工学院大など、M87近傍からの相対論的ジェットに伝播する「横波」を発見

  • OISTなど、藤原定家の文献と年輪から鎌倉時代の太陽プロトン現象を特定
    宇宙・航空

    鍵アイコン OISTなど、藤原定家の文献と年輪から鎌倉時代の太陽プロトン現象を特定

  • ソニー半導体事業率いた清水照士氏、AI Powerに参画 次世代セキュリティ半導体ATOM展開へ
    半導体

    鍵アイコン ソニー半導体事業率いた清水照士氏、AI Powerに参画 次世代セキュリティ半導体ATOM展開へ

  • NEC、通期決算は増収増益 AI戦略「SaaS is dead」時代を追い風に
    企業動向

    鍵アイコン NEC、通期決算は増収増益 AI戦略「SaaS is dead」時代を追い風に

  • 富士通、2025年度決算は減収増益で過去最高益を更新 - 次期中計にも時田CEOが言及
    企業動向

    鍵アイコン 富士通、2025年度決算は減収増益で過去最高益を更新 - 次期中計にも時田CEOが言及

アクセスランキング
  • ワークエリアのインターネット環境の意図せぬ制限が業務の限界点になる

    鍵アイコン ワークエリアのインターネット環境の意図せぬ制限が業務の限界点になる

    2026/04/28 13:37 レポート
  • 通勤スキル"リアルタイム混雑情報"の駆使で都心の通勤課題を乗り越える

    鍵アイコン 通勤スキル"リアルタイム混雑情報"の駆使で都心の通勤課題を乗り越える

    2026/04/27 16:56 レポート
  • エンタープライズIT新潮流 第69回 組織変革を加速する「組織OS」とは?ピーター・センゲに学ぶ"学習する組織"の本質

    2026/04/27 11:28 連載
  •  プログラム言語を利用する(Ruby)

    鍵アイコン なんとなくコマンド 第113回 プログラム言語を利用する(Ruby)

    2026/04/23 16:31 連載
  • "究極"のNano Bananaプロンプトガイドとは?Googleが公式ブログで指南

    鍵アイコン "究極"のNano Bananaプロンプトガイドとは?Googleが公式ブログで指南

    2026/03/11 17:19 レポート
ランキングをもっと見る
もっと見る

編集部が選ぶ関連記事

  • なんとなくコマンド 第42回 コンピューター上の電卓機能(2)
    キャリア/スキル

    鍵アイコン なんとなくコマンド 第42回 コンピューター上の電卓機能(2)

  • なんとなくコマンド 第41回 コンピューター上の電卓機能(1)
    キャリア/スキル

    鍵アイコン なんとなくコマンド 第41回 コンピューター上の電卓機能(1)

  • PowerShell
  • コマンド活用

※本記事は掲載時点の情報であり、最新のものとは異なる場合があります。予めご了承ください。

新着記事
  • ワークエリアのインターネット環境の意図せぬ制限が業務の限界点になる
    キャリア/スキル

    鍵アイコン ワークエリアのインターネット環境の意図せぬ制限が業務の限界点になる

    5時間前 レポート
  • 通勤スキル"リアルタイム混雑情報"の駆使で都心の通勤課題を乗り越える
    キャリア/スキル

    鍵アイコン 通勤スキル"リアルタイム混雑情報"の駆使で都心の通勤課題を乗り越える

    2026/04/27 16:56 レポート
  • エンタープライズIT新潮流 第69回 組織変革を加速する「組織OS」とは?ピーター・センゲに学ぶ"学習する組織"の本質
    キャリア/スキル

    エンタープライズIT新潮流 第69回 組織変革を加速する「組織OS」とは?ピーター・センゲに学ぶ"学習する組織"の本質

    2026/04/27 11:28 連載
  • Exa Enterprise AI、生成AI活用と変革を推進する人材の素養を測定できるテストを提供開始
    キャリア/スキル

    Exa Enterprise AI、生成AI活用と変革を推進する人材の素養を測定できるテストを提供開始

    2026/04/24 20:27
  • なんとなくコマンド 第113回 プログラム言語を利用する(Ruby)
    キャリア/スキル

    鍵アイコン なんとなくコマンド 第113回 プログラム言語を利用する(Ruby)

    2026/04/23 16:31 連載
  • 迷わないメニューの重要性とカスタマイズでトップメニューを変える心地良さ
    キャリア/スキル

    鍵アイコン 迷わないメニューの重要性とカスタマイズでトップメニューを変える心地良さ

    2026/04/22 14:35 レポート
こちらも注目
  • TECH+
  • 企業IT
  • キャリア/スキル
  • Windows PowerShellでファイルダイアログを表示

このカテゴリーについて

ビジネスパーソンのキャリアに関する情報や業務の効率化や生産性向上などのスキルアップに役立つ情報を提供していきます。

Techpopbanner upper Techpopbanner bottom
  • TECH+について
  • 利用規約
  • お知らせ
  • 会員規約
  • その他、お問い合わせ
  • 情報提供
  • サイトマップ
  • 広告について
  • 著作権と転載について
  • 個人情報の取り扱いについて
企業IT/テクノロジー/Members+ メールマガジン
  • 購読登録はこちら
  • 配信停止はこちら
TECH+ 公式SNS
Copyright © Mynavi Corporation