Windows作業マシンで設定すること１ - 簡易ランチャ

Windowsの作業マシンで必ず設定することを綴ります。
名付けて「簡易ランチャ」です。

キーボードのショートカットをたくさん覚えるとマウスを使用するよりも高速に作業ができますが、今回紹介する設定をしておくことでアプリの起動などをキーボードで行えるようになって便利です。

# 設定の前に前提の話(Windowsの紹介、ショートカットキー覚えておく)
まず、簡易ランチャを使用するためのショートカットキーとそれに対応する機能を紹介します。

## Windowsキー + R
* 「ファイル名を指定して実行」画面を起動します。
**長いので以降は「指定実行」と呼びます **
* 次のようなダイアログです。
![ファイル名を指定して実行.png](https://qiita-image-store.s3.amazonaws.com/0/91779/3d8f745d-be25-f2d4-81e8-de01a46e34e7.png)


* 「 Windowsキー + R」を後の画面では入力エリアにフォーカスされており、キーボードで起動したい任意のコマンドを指定できます。コマンドはPATHが通っている場所にあるものならすべて実行可能です。
* まとめると次の手順で任意のコマンドが実行できます。

1. Windowsキー + R
2. コマンド入力
3. Enter

## よく使うコマンド
何も設定しなくても起動できるコマンドたちを紹介します。
ただし、Office系のコマンド（アプリ）は当然Officeがインストールされていないと入りません。
### cmd
コマンドプロンプトを起動します。
### mspaint
「ペイント」の新しいプロセスを起動します。
### excel
Excelの**新しいプロセス**を起動します。
### winword
Wordの**新しいプロセス**を起動します。
### powerpnt
Power Pointの**新しいプロセス**を起動します。
### shell:downloads
「ダウンロード」フォルダを開きます。
### shell:startup
「スタートアップ」フォルダを開きます。
### shell:XXX
shell:XXXでユーザに関連したディレクトリを開けると思います。たぶん
ドキュメントなど。
### (任意のディレクトリ)
フォルダ名をそのまま入力するとエクスプローラでフォルダを開きます。
よく使うディレクトリは「c:」です。
### (任意のファイルパス)
関連付けられているアプリケーションでファイルを開きます。
ちなみに、コマンドプロンプトでは半角空白を含むパスはダブルクォーテーションで囲まなければなりませんが、ファイル名を指定して実行では特に囲まなくても大丈夫です。
### (任意のURL)
既定のブラウザで新しいページとしてURLを開きます。
### eventvwr
イベントビューアを開きます。
### taskmgr
タスクマネージャを起動します。
### services.msc
「サービス」を開きます。
### and so on ...
このほかにもいくつも便利なコマンドがあるはずです。

# 自分用のコマンドを「指定実行」
上記で紹介したのは既定のコマンドたちです。
自分の起動したいアプリやバッチファイルを「指定実行」で起動するための設定をします。

## 自分用のコマンドを配置するディレクトリを作成
自分の場合は、だいたい「C:\Users\(ユーザ名)\work\scut」ですね。
scutはショートカット(short cut)っていう意味で使ってます。
今回は「c:\work\scut」という前提で話を進めます。

## 手始めに「work」ディレクトリと「scut」のショートカットを配置
「scut」フォルダをエクスプローラで開き、アドレスバーの左のアイコンをドラッグ＆ドロップするだけです。
![scut保存前.png](https://qiita-image-store.s3.amazonaws.com/0/91779/60bdb290-a4ad-e776-1cfe-1abf89c86495.png)


↓


![scut保存後.png](https://qiita-image-store.s3.amazonaws.com/0/91779/3a60b1f4-4075-1f31-7555-a180c73e7c4f.png)
ファイル名が「scut - ショートカット」になっているので、これを「scut」に変更しておきます。
似たような手順で「work」ディレクトリのショートカットもおいておきます。

## PATHの設定
環境変数のPATHに「c:\work\scut」を追加しておきます。
ちなみに環境変数はユーザごとと、システム全体(ユーザ共通)の環境変数が設定できますが、会社で使用しているパソコンや家族など複数人で使用する場合はユーザごとの環境変数にPATHを追加する形で設定するほうがいいと思います。

## お試し
「指定実行」にて「scut」と入力すると「c:\work\scut」フォルダがエクスプローラで起動できたら成功です。

# その後
これで「scut」フォルダに、アプリケーションの実行ファイル・フォルダのショートカットやバッチファイルなどを追加していけば簡易ランチャとして「指定実行」を起動できます。
もちろん、Officeなどのようにアプリケーションをインストールすれば自動的にPATHが追加されるものもあります。ただ、実行ファイル名が長い場合などはショートカットを作成し、短い名前に変更して「scut」フォルダに配置すれば、自分だけの短い名前で起動ができます。

たとえば、[WinMerge](http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html)はインストール時にPATHを設定するオプションがありますが実行する際には「winmerge」と入力しなければなりません。
WinMergeのショートカットを「mg」という名前で作成し「scut」フォルダに配置すれば「mg」でWinMergeを起動することができます。

# 注意点 - 既存コマンドと被らないようにする
scutに登録するファイル名を既存のコマンドとバッティングさせないこと。
この場合、PATHの捜索の優先順位によって次のいずれかがおこります(未検証ですがおそらくあっていると思います)

case 1: 既存コマンドが使えなくなる
case 2:  登録したコマンドが起動できず、既存の同名のコマンドが起動する（危険！）

特に危ないのはcase 2だと思います。コマンドから起動する操作は1コマンドでシステムを破壊するようなことができてしまう場合があるので危険です。たぶん。

危なくないコマンドであっても被るのはよくないですよね。

## 対処法
幸い、windows 10であればLinuxの「which」があるので、登録するコマンド名を決めたらscutへ配置する前に「which」にて存在確認をしましょう。存在しなければ、登録しましょう。
windows10より前の場合でも、なんらかの方法で存在確認をすることを推奨します。
具体的に明示できなくてすみません。

# 僕が登録しているコマンドたちの一部
僕が登録しているコマンドたちの一部を紹介ます。

* work(workフォルダ)
* scut(scutフォルダ)
* dl(ダウンロードフォルダ)
* intellij(IntelliJ起動)
* crm(chrome起動)
* chrome(chrome起動 覚えやすいという理由でこちらを使っている。。。)
* iexplorer(IE起動)
* snip(sniping tool起動) … 何気にこれがすごく便利
* vmwk(vmとの共有フォルダを開く)
* dev(開発用のソースコードがある起点フォルダ)
* (開発で使用するバッチ類)
* sakura(sakuraエディタ起動)
* vscode(Visual Studio Codeの起動。標準のcodeだとコマンドプロンプトが残るので自作)
* and so on ...

# コマンドプロンプトから「scut」のファイルを開くとき
サクラエディタのショートカットを「scut」で配置しているときに、コマンドプロンプトから「sakura」と入力しただけではサクラエディタが起動ができません。「sakura.lnk」と入力することで起動が可能です。
ちなみにサクラエディタにはファイル名を引数で渡すことで、そのファイルをサクラエディタで開くことがかのうです。このとき、引数は絶対パスにしておいたほうがいいです。相対パスにすると、サクラエディタからの相対パスと解釈されてしまうからです。コマンドプロンプトから起動する場合は、カレントディレクトリに「Some.txt」があり、それをサクラエディタで開くためには次のようにします。

```コマンドプロンプト
> sakura.lnk %cd%\Some.txt
```
もっとスマートな方法があれば教えてください。
たぶん、コマンドプロンプトからよく起動するようなものは「scut」フォルダを利用せずに直接実行ファイルへのPATHを設定してしまったほうがいいです。

# 余談
ファイル名を指定して実行にて省略できる拡張子は「pathext」に定義されています。
そのため、pathextを拡張すれば、任意の拡張子を省略して指定できるようなります。

これを調べるときに同じような記事があることに気が付きました。
[「ファイル名を指定して実行」超活用法](http://www.otchy.net/20090601/win-r-super-tips/)

記事を投稿するのをやめようかと思いましたが、被っている内容もあればそうでないものあるので投稿することにしました。

問題等があればコメント等を頂ければ幸いです。