超入門 - 知識ゼロからコマンドプロンプトをつかう

[全体の目次](https://qiita.com/kob58im/items/4308cdb2d722db524668)

前提： 前記事 [超入門 - 知識ゼロから OS (Windows) の常識を知る](https://qiita.com/kob58im/items/47d031ed46ed635fc19c) を理解していること


# 1. コマンドプロンプトを使うシーン

- 特殊なツール（主にソフトウェア開発系のアプリケーション）に、引数を渡して起動したいとき。
- GUI上で操作せずに、アプリケーションを実行したいとき。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438183/55e6b0f1-da19-233d-ef20-8431078ec646.png)


# 2. コマンドプロンプトの起動方法

起動方法はいくつかあります。どれで起動してもよいです。

## 2.1. タスクバーの検索窓から

step1. タスクバーの検索窓（下図）に

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438183/d3ee9f13-6c6b-4f78-1387-7d45df3055ef.png)

step2. cmd と入力（下図）


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438183/05375f02-c7ab-72dd-0af2-f00c81118c74.png)

step3. 下図が表示されたら、クリック or Enterキーを押す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438183/f14c2abd-d5d9-20b1-f113-a28b97a616e3.png)

## 2.2. Windowsキー+Rキーから

<font color="blue"><b>【2020.11.03追記】これが一番おすすめ</b></font>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438183/90680c17-3397-f617-0f44-3ffedabee6ef.png)



## 2.3. メニューから

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438183/d8da3a64-9f2c-2a8b-86d0-2b0a16be58db.png)


## 2.4. ショートカットファイルを作っておく

step1. 「2.1. タスクバーの検索窓から」の検索結果として表示された「コマンド プロンプト」を右クリックする。
step2. 「ファイルの場所を開く」をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438183/af70928a-6f11-cfe3-9d38-d8f022dc991d.png)

step3. 表示されたフォルダに「コマンドプロンプト」のショートカットファイルがあるはずなので、これをコピーする。[^1]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438183/754814c2-edef-510f-5bb2-10b02ab06953.png)

[^1]: 実体（アイコン画像に矢印がない）の場合は、右クリックして、「送る(N)」を選び、「デスクトップ（ショートカットを作成）」をクリックする。


# 3. 最低限覚えるべき操作とコマンド

## 3.1. カレントフォルダの移動

コマンドプロンプトで作業する対象のフォルダを変更します。
`cd`コマンドを使います。(<b>C</b>hange <b>D</b>irectoryの略。ディレクトリ(Directory)はフォルダと同じ意味。)
`cd`に続けて<b>スペースを入力</b>し、さらに続けて<b>フォルダ名</b>などを指定します。入力し終えたら、<b>[Enter]キー</b>を押します。

- 例１．絶対パス[^2]をドライブを含めて指定する。<br>`cd c:\xxxx\xxxx`
- 例２．絶対パス[^2]をドライブを含めずに指定する。<br>`cd \xxxx\xxxx`
- 例３．相対パス[^2]を指定する。<br>`cd xxxx`
- 例４．一つ上のフォルダに移動する（ピリオドを2つ入力します）。<br>`cd ..`

[^2]: [【初心者向け】絶対パスと相対パスの違いについて解説](https://proengineer.internous.co.jp/content/columnfeature/5229)を参照


## 3.2. 入力補完

いちいち全部手入力するのは面倒です。コマンドプロンプトには便利な機能があり、<b>パス（ファイル名やフォルダ名）を補完できます</b>。
パスを途中まで入力して（もしくは入力せずに）、<b>[Tab]キーを押すと、次のパス候補</b>が表示されます。
（この時点では入力は確定しておらず、さらに[Tab]キーを押すと、ほかに候補がある場合は、次々に切り替えることができます。）

## 3.3. アプリケーションの起動

現在の作業パス（「3.1. カレントフォルダの移動」参照）にある、ファイルを実行[^3]するには、
`現在の作業パス>` が表示されている行に、ファイル名を入力して[Enter]キーを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438183/a283210e-3aa2-7c42-395b-412a09d4a20f.png)

[^3]: `.exe`ファイル以外のファイルを「実行」すると、Windowsがそのファイルの拡張子に関連付けられたアプリケーションによって、そのファイルが開かれます。（デスクトップやエクスプローラ上でアイコンをダブルクリックしたときの振る舞いと同じようなもの。）

なお、すでに「パスがとおっている」[^4] 場合(`C:\Windows\System32\`にある`mspaint.exe` など)は、現在の作業パスによらず、実行できます。

[^4]: [Windows 10でPath環境変数を設定／編集する](https://www.atmarkit.co.jp/ait/articles/1805/11/news035.html)


### 3.3.1. コマンドライン引数

アプリケーションは、<b>引数</b>とよばれるパラメータを<b>複数個</b>受け取ることができます。
実は、Excelなどのアプリケーションにファイルを<b>ドラッグ＆ドロップ</b>[^5]すると、このファイルのパスがアプリケーションに渡されます。この仕組みによって、アプリケーションは、ドロップされたファイルを開くといった動作が可能になっています。（どう処理するかは、受け取ったアプリケーションの自由です。）
これと同じことを、コマンドプロンプトから実行できます。引数には、<b>パス以外の情報も指定できます。</b>

コマンドプロンプトでは、１行の文字列を使ってアプリケーションを起動させるので、引数を複数渡せるように、ある文字が<b>引数を区切る</b>ために割り当てられています。それが<b>スペース文字</b>(半角空白)です。

そのため、半角空白を含むパスを指定すると、パスが半角空白の前後で分割されてしまい、ユーザーが意図しない引数がアプリケーションにわたってしまい、意図しない挙動をする場合があります。

とはいえ、空白を含むパスを渡したい場合も考慮されており、引数の両端をダブルクォーテーションでくくると、１つの引数として扱われます。


## 3.4. クリップボードへのコピー＆クリップボードからのペースト

### 3.4.1. コピー
コピーしたい領域をマウスでドラッグ[^5]して選択し、選択領域の色（白黒）が反転していることを目視確認したうえで、そのコマンドプロンプト上で右クリックする。（選択エリアの内外は問わない。）
<font color="blue"><b>【2020.11.03追記】Windows10以降では Ctrl+C が使える！</b></font>

[^5]: マウスの左ボタンを押して、押したまま離さずにマウスを目的の位置まで動かし、左ボタン離す操作。（「ドラッグ」だけだと、ボタンを離す操作を含めないことが多い。）

こんな感じ：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438183/4b39637f-4707-7e76-c300-81ca0b8beb24.png)

### 3.4.2. ペースト（貼り付け）

コマンドプロンプト上で右クリックする。（現在の入力待ちの行だけでなく、そのコマンドプロンプトの画面上のどこであっても、ペースト操作として扱われる。）
<font color="red"><b>ペーストしたデータに改行文字が含まれていると、ペーストした瞬間に、張り付けたテキストデータに従って次々にコマンドを実行してしまう。極めて危険なので慎重に操作する必要がある。</b></font>
（コマンドプロンプトが表示されているときは、右クリックしない。くらいのつもりでいたほうが良い。（3.4.1.のコピー作業もできなくなるが・・・））
<font color="blue"><b>【2020.11.03追記】Windows10以降では Ctrl+V が使える！</b></font>

## 3.5. その他の便利コマンド

| コマンド | 機能 |
|-----------|-----------|
| cls   |  画面（ログ）を消去する。ごちゃごちゃしてきて見づらかったりしたときに使う。   |
| dir   |  カレントフォルダ（ディレクトリ）に含まれているファイルを一覧表示する。   |
| tree  |  カレントフォルダ（ディレクトリ）以下のフォルダ構造をツリー上に表示する。   |

この記事を書くまで`tree`コマンドの存在を知らなかった。。。



# 参考サイト

- [今さら聞けない！コマンドプロンプトの使い方【初心者向け】]
(https://techacademy.jp/magazine/5318)
- [【初心者向け】絶対パスと相対パスの違いについて解説](https://proengineer.internous.co.jp/content/columnfeature/5229)
- [Windows 10でPath環境変数を設定／編集する](https://www.atmarkit.co.jp/ait/articles/1805/11/news035.html)