Edited at

「ファイル名を指定して実行」を極める

More than 1 year has passed since last update.

Win + R キーで開ける「ファイル名を指定して実行」。

地味に便利なコイツの使いこなし術(と一部マニアックなネタ)をお届けします。


なぜ「ファイル名を指定して実行」を使うの?


どの Windows でも使えるから

Windows に標準で備わっている機能なので、どの Windows でも使えます。共有 PC、仮想マシン、後輩の PC、客先の PC などでもサクっと使えます。


軽くて速くてシンプルだから

下手なプログラムランチャーよりも軽くて、速くて、シンプルなので地味に使いやすいです。


覚えておくと便利なコマンド

厳密に取り上げると長文になっちゃいますが、私がよく使うコマンドを挙げておきます。


標準アプリ

コマンド
備考

calc
電卓

cmd
コマンドプロンプト

control
コントロールパネル

excel
Excel

explorer
エクスプローラー

iexplore
Internet Explorer

msinfo32
システム構成

mspaint
ペイント

mstsc
リモートデスクトップ

notepad
メモ帳

powerpnt
PowerPoint

regedit
レジストリエディタ

taskmgr
タスクマネージャ

winword
Word

その他参考:


コマンド

cd や dir や if など、コマンドプロンプトから使うようなコマンドは「ファイル名を指定して実行」から実行できません(もっと言うと where コマンドで実体が見つからないもの)。これらコマンドはコマンドプロンプトに組み込まれているものなので、コマンドプロンプトを経由して実行させてやる必要があります。

以下のようにします。

cmd /c コマンド

例1: if コマンドのヘルプをクリップボードにコピーする

cmd /c if /? | clip

例2: if コマンドのヘルプをクリップボードにコピーした後、(貼り付ける用の)メモ帳を開く

cmd /c if /? | clip & start "" notepad


環境変数(特殊フォルダ)

特殊なフォルダを開く時に使います。

%userprofile%

ユーザープロファイルフォルダを開きます。開発環境系の Dotfiles は大体ここにあるので地味に多用します。たとえば Git の global config をいじりたい場合、hidemaru %userprofile%\.gitconfig で開けます(hidemaru部分はお使いのエディタを)。

%appdata%

アプリケーションデータフォルダを開きます。アプリの設定をいじったりバックアップしたりする時にたまに開きますかね。


shell:XXXX(特殊フォルダ)

これも特殊フォルダを開く系です。

コマンド
備考

shell:desktop
デスクトップ

shell:start menu
スタートメニュー

shell:sendto
送るフォルダ

shell:recent
最近使ったファイル

ちなみに shell:XXXX の XXXX として使えるのは、レジストリの HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders にて定義されているフォルダパスです。

※レジストリ開くのがだるい方は Windows 7 のユーザーフォルダ(User Shell Folders)の初期値 あたりにもまとまってます。


XXXX.cpl(コントロールパネル)

コントロールパネル系です。

コマンド
備考

control folders
フォルダオプション

inetcpl.cpl
インターネットオプション

main.cpl
マウスのプロパティ

appwiz.cpl
プログラムの追加と削除

sysdm.cpl
システムのプロパティ(Win + Pause/Break キーの方が速いですが)

services.msc
管理ツールのサービス

参考: How to run Control Panel tools by typing a command


explorer shell:::{CLSID}

Windows には CLSID という「Windows 上のアプリや機能に割り当てられた識別子」があります。これを指定することでその機能を呼び出すこともできたりします。

例: explorer.exe Shell:::{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}

これは「ファイル名を指定して実行」を(CLSIDを指定して)呼び出す例です。


「ファイル名を指定して実行」を開くコマンド

リモートデスクトップを使っていると Win + R キーが効かない(というより接続元が反応してしまう)ことがあり、素早く呼び出せません。そんな時は以下のバッチファイルを作りましょう。

run.bat

start "" explorer Shell:::{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}

これをどこか起動しやすい場所に置いておけば、ワンタッチで開けます。スタートメニュー → ファイル名を指定して実行、よりも速いです。


(余談)他にどんな CLSID があるの?

本題から逸れるので簡単に。

下記が参考になると思います。全部で 120 個くらいあるみたいですね。


履歴を削除する

「ファイル名を指定して実行」の履歴はレジストリ HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU に記録されているので、ここを消すことで削除できます。ちなみに PowerShell を使えば一発で削除できるようです。

参考: 世界一簡単な「ファイル名を指定して実行」の履歴のクリア(全消し)手順 - Qiita


任意アプリを任意名で開けるようにする

「ファイル名を指定して実行」から好きなキーワードで好きなアプリを開けるようにすることも実は可能です。結論を言うと ショートカットファイルを、PATH の通ったフォルダに置きます

手順:


  • (1)ショートカットを放り込む用のフォルダを作る

  • (2) 1 のフォルダを PATH に通す

  • (3) 1 のフォルダ内の各ショートカット名を工夫する

すると、ショートカット名を打つだけで開けるようになります。たとえば Firefox.exe のショートカットを fi という名前で置いておくと、fi と打つだけで Firefox を開けます。

ちなみに (2) が面倒くさい場合は、C:\Windows や C:\Windows\System32 など元から PATH の通ったフォルダにショートカットを放り込めばいいです。ただこれらはシステムフォルダなので行儀はよくないですね :sweat:


コマンドラインをサクッと実行したい

「このコマンドラインを実行したい」というシチュエーションがあると思います。皆さんはどうしていますか?コマンドプロンプトを開いてから貼り付けていますか?

「ファイル名を指定して実行」を使えば割と簡単に実行できます。

手順:


  • コマンドラインをコピーする

  • Win + R キーを押す

  • Ctrl + V キーを押す

  • Enter キーを押す

コピーしたコマンドラインを上記 3 ステップで開けます。覚えておくとサクッと開けて快適です。

ただしコマンドラインのファイルパスや引数にスペースを含む場合は "" で囲みましょう。

NG:

c:\program files\AutoHotkey\AutoHotkey.exe C:\Users\UserHoge\Desktop\Data folder\ahk.ahk

OK:
"c:\program files\AutoHotkey\AutoHotkey.exe" "C:\Users\UserHoge\Desktop\Data folder\ahk.ahk"


履歴に関する細かいネタ


履歴が保存されない in Win10

システム > パーソナル > スタート > よく使われるアプリを表示する を オン にしてください。

参考: Run does not save command history in Windows 10


履歴の仕様

レジストリエディタを見ればわかりますが、ちょっとヘンテコな仕様をしています。


  • 保存場所は HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU

  • 保存可能な 履歴数は 26 個まで

  • 履歴1件はアルファベット1文字のエントリと対応付けて保存

  • 履歴の表示順序は MRUList エントリにてアルファベットを並べる


    • 例: malkt... は履歴m, a, l, k, tの順に表示する、の意




「ファイル名を指定して実行」を禁止する

レジストリを使うと、「ファイル名を指定して実行」の表示と実行を禁止することもできます。

やり方としては、


  • レジストリエディタ regedit.exe を開く


  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer キーを開く


  • NoRun というエントリを REG_DWORD で新規し、値に 1 を設定

環境によっては Windows を再起動しないと反映されないかもです。

参考: 禁止動作等の設定 - いじくるつくーるのヘルプ


「ファイル名を指定して実行」の英語名

RUN です。一般動詞すぎて検索が辛いです。

検索するときは「windows run dialog」のように補足でキーワードを付けるのが良いでしょう。


おわりに

以上、「ファイル名を指定して実行」に関するネタをお届けしました。参考になれば幸いです。

また「こんなネタもあるよ!」等ありましたらぜひ教えてください!