コマンドプロンプト基本操作（フォルダ移動、ファイルの中身比較）

#コマンドプロンプトの基本操作
コマンドプロンプトで使う基本操作入門編ということでまとめます。
完全に初心者向けなので、普段コマンドプロンプトを使われている方にとっては退屈な内容になります。

##本記事の対象者

- `ipconfig`や`net share`など簡単な操作はしたことがあるがあまり使い方がわかっていない
- バッチファイルを自分で作ってみたい
- 拡張子の変え方は分かる

##コマンドプロンプトのショートカットをデスクトップにコピーしよう！

- スタートボタン⇒コマンドプロンプト と検索
- ファイルの場所を開く⇒コマンドプロンプトのショートカットをデスクトップへコピーする

※出ない場合はエクスプローラーで下記のパスを入力してください

```.bat
%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools\コマンド プロンプト

```

##ディレクトリ間の移動を覚えよう！
デスクトップにコピーしたコマンドプロンプト（以下"cmd"と記述する）を開きます。


```.bat
C:\Users\user> 
```
上記のような物がに出ていますが、これは現在の作業位置を示しています。
試しに

```.bat
dir
```
と打って、Enterを押してみましょう。
このコマンドは、現在の位置にあるディレクトリを表示するコマンドです。
次に、

```.bat
cd desktop
dir
```
と打ってみましょう。
先ほどとは異なる結果が出て、作業位置が変わったことがわかると思います。

```.bat
rem Count Directoryの略です。
cd
```
このコマンドでdirectoryの移動ができます。
※remはメモ書きのようなものです
###その他コマンド例
|  cd ../ | 一つ上のディレクトリに移動  |
| ---- | ---- |
|  cd \  | ルートディレクトリに移動する|
|  md | ディレクトリを作成する|
|  fc | ファイルの中身を比較する|
|  d: | CドライブからDドライブへ移動する|

また、普段使用するディレクトリ位置から開始したい場合は、

- そのディレクトリにcmdのショートカットをコピーする
- cmdのプロパティを開き、作業フォルダー先を空白にして適用する

以上のことを行ってからcmdを立ち上げると、初めからそのディレクトリ位置から開始されます。

##ファイルの中身を比較させよう！
###準備

- デスクトップに”バッチ練習”フォルダを作成する
- バッチ練習フォルダにcmdのショートカットをコピーする
- cmdの作業フォルダ先を空白にする
- `%userprofile%\deskutop\バッチ練習フォルダ` に「file1.txt」「file2.txt」を作成する
- file1.txtに下記文章を記入して保存する![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462058/29d7fb0a-4e6c-8aba-c2ac-9561c11982e0.png)
- file2.txtに下記文章を記入して保存する![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462058/3af5c0ee-eb29-09c0-1e02-cef2bd8a7ac5.png)


```.bat
rem デスクトップにフォルダを作成
md %userprofile%\desktop\バッチ練習
```
※GUI操作で作っても可能です。

###テキストファイルの中身の比較を行おう！

```file_compare.bat
fc file1.txt file2.txt
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462058/ab2d7cce-e193-8d2b-e944-936f8feb8255.png)
上記の文章が出たら正解です・
このコマンドでは、それぞれ比較するテキストファイルの相違する文章を表示します。
ただ、これではどの行の文章が相違するのかが分からないので

```file_compare.bat
fc file1.txt file2.txt /n
```

これで何行目が異なるかがわかるようになりました。
`/n`とは、オプションキーというもので、これは

```.bat
fc /?
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462058/d8be1999-48c5-260d-767b-2a2679c402c4.png)
でどのオプションキーが使えるのかが分かります。
※およそ各コマンドごとに決められています

##ブレースフォルダ
```file_compare.bat
fc file1.txt file2.txt /n
```
だと、もしバッチファイルを作成したら`file1.txt` `file2.txt` の名前を変更したい場合や、他のテキストを比べたい時にいちいち修正をしなくてはなりません。
それでは効率的ではないのでブレースフォルダ（引数）を使用します。
###準備

- 新しいテキストファイルを作成する
- `fc %1 %2 /n`と記入し、文字コードをANSIで保存する。
- テキストの名前を「file_compara.bat」という名前にする。

###引数を使って比較してみる

cmdを立ち上げ、

```.bat
file_compare.bat %1 %2 /n
```
![2020-01-19_23h30_36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462058/b83e1901-6149-481d-e1f8-b99981843d7b.png)
以上のように、同じ結果が出ました。
`file_compare.bat` にある`%1` `%2`は、後からここに書くファイル名を決めることができる**変数（引数）**と言われるものです。
今回の場合だと、`%1 = file1.txt` `%2 = file2.txt`の内容となります。

###結果をファイルに出力しよう！
```file_compare.bat
fc file1.txt file2.txt /n > result.txt
```
上記のコマンドを実行すると一見何も起きないように見えますが、cmdの作業場所をエクスプローラー上で確認してみると`reslut.txt`というテキストファイルが出ました。
このテキストを見てみると正しく実行結果が書かれています。
このように

```.bat
> reslut.txt
```
実行結果の出力先を指定することができます。

##cmdを開かずにコマンドを実行しよう！
バッチファイルの出力結果をcmdを開かずに得る方法があります。

```file_compare.bat
fc %1 %2 /n > new_reslut
```
エクスプローラー上で`file1.txt` `file2.txt`を選択して`file_compare.bat`にドラッグ＆ドロップします。
更新をかけてあげると、`new_reslut.txt`が出てきて、出力結果が出ました。
このように、マウスの操作のみでバッチファイルを実行することもできます。