君もできる！Excelとコマンドプロンプトで大量のファイルを移動/コピーする方法

**こんにちは！皆さん！エンジニアリングしてますか！**

今回は誰でもできる、Excelのオートコンプリート機能とコマンドプロンプト等を使用し、めんどくさいファイル移動をしてみたいと思います！

#今回やること
デスクトップ上会社ごとの20個のpdfファイルがあります。（ファイルの中身は、領収書PDFと考えてください。）
![写真１.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/5d4cbc92-f240-30c8-33ff-f26129276bf0.png)

このフォルダ上に移動場所を作成し、その中の各フォルダに振り分けコピーしていきます。
![写真2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/12e47c16-8845-d9ce-bc34-9e0afa647f1f.png)
クラウド等にファイルを転送する場合、一つずつファイル移動するのはめんどくさいですよね、、、
ですが、これらをすぐに移動できる方法がありますので是非ご参考にしてください。
#使用ツール
　・Windows10
　・コマンドプロンプト
　・Excel
　・サクラエディタ（https://sakura-editor.github.io/）
　・メモ帳

#どのようにして移動するのか？
以下の図のように、あらかじめ用意してある20個以上のファイルを、コマンドプロンプトで指定されたパスにある
フォルダにコピーします。
![Flow2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/f214183a-cfc6-a8f7-c07c-bf40f59c5897.png)

Excelとメモ帳で作成したバッチファイルを使い、大量のファイルをコピーしていく流れとなります。
では、実際にどのように行っていくのでしょうか？

#行動フロー
具体的にどのように行うフローは以下になります。
![Flow1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/3263550b-0244-bc55-7454-68f620876b6b.png)
①～⑥までのフローを順番を行いながら説明していこうと思います。

#実際にやってみる
それでは実際にやってみましょう
<dl>
  <dt>①ファイルを用意する</dt>
  <dd>では、Excelファイルを作成します。以下のフォーマットシートを作成します。

![写真1-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/33d738a5-babe-5278-d412-30ac78ee2884.png)

各「ファイル格納パス」と「移動先フォルダパス」と「ログ格納フォルダパス」を入力します。
※「ログ格納フォルダパス」はコマンドプロンプトの出力結果を出します。

次に、移動したい各ファイル名を取得しましょう。
まず、移動される前のパスが表示されているバーに「cmd」と打ち込みます。
![写真3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/497eb6ee-c893-5387-a813-796d67fd8b16.png)
打ち込んだら、このパス上のコマンドプロンプトが表示されます。
![写真4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/93d40822-136d-e9e4-2ec5-579cb285e44e.png)
そこで、「dir *.pdf /b」と入力したら、、、
![写真5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/75cbbda7-ead0-12af-5d72-27d347d506a6.png)
この様にすべてのpdfファイル名が表示されました！

しかし、ファイル名のみが欲しいのですが「.pdf」が邪魔ですね。その場合。表示されたファイル名をコピーしてサクラエディタへコピーしましょう。
![写真6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/cdc7ae1d-4e19-8dcb-61dd-2ce45f8db9f2.png)
そこで、一番上の「株式会社AAA」と「.pdf」の間にカーソルを合わせ「Alt + ↓」を押して一番下まで移動し、「→」を選択すると、、、
![写真7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/b0e35847-d87c-f57f-f7d3-cd07cc361f69.png)
矩形選択されましたね！そのままバックスペースキーを押すと、、、
![写真8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/1c5aa711-c9c2-7274-16a3-e6e695ffd7a1.png)
ファイル名のみになりました！これをExcelに張り付けます。
![写真9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/d903cb28-ca4d-e45d-20e4-ed29393de8ea.png)



</dd>
  <dt>②コマンドプロンプトとExcelを使用しでコマンドを作成する</dt>
  <dd>さて、ここからコマンド文をまとめて作成していきます。
コピーするコマンドは「**copy**」なので株式会社AAAを移動するためには、、、

```shell

Copy %HOMEPATH%\Desktop\コピー用フォルダ\株式会社AAA.pdf %HOMEPATH%\Desktop\コピー用フォルダ\移動用ファイル\株式会社AAA >%HOMEPATH%\Desktop\コピー用フォルダ\出力ログ\一括レポートログ.txt

```

となります。が、これをわざわざファイル数分作成するのはめんどくさいです、、、
なのでExcelのテンプレートを使い**セルコピー機能**と**オートコンプリート機能**を使用します。
あらかじめ入れておいた、パスを使用し、、、
![写真10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/77649bca-7c00-5a2a-c5b9-53c979d6a9e8.png)
この様にセルと文字列を組み合わせる書き方をします。そうしたら、、、
![写真11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/139fa419-4346-29be-ac0a-a1f0d5207f5b.png)
この様にファイルパスが入力されます。
同じく、「コピー先」「ログ記録」の欄を入れておきます。
![写真12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/17856a74-7a63-51c0-1f6c-6ee0e8781bc3.png)
このときに注意してほしいのは「ログ記録」の「>」はファイルを作成するというコマンドなのでそれを上書き記録をするためには「>>」を入力する必要があります。それを踏まえたうえでオートコンプリート機能を使用しましょう。
![写真13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/0fa5b646-e76f-f771-d36b-436089c3ddf7.png)
このまま、下へ引っ張ると、、、
![写真14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/24d38832-5a1d-6a48-0b5d-1b84bd0aa607.png)
この様にすべてのコマンドが生成されました！これをメモ帳に張り付けてバッチファイルを生成しましょう。
</dd>
  <dt>③メモ帳に入力してバッチファイルを作成する</dt>
  <dd>以上のコマンドをメモ帳に張り付けます。
![写真15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/c80e1ffe-802b-e401-8d58-a45769418c84.png)
ですが、タブ区切りになっているため、このままではコマンドが実行できないので置き換え機能を使いましょう。
![写真16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/3e5e4c6d-ec6f-a38c-4f6a-a5c3b03e056a.png)
![写真17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/1971a8dd-4b4c-c18a-429a-3ce59d3fe793.png)
これで使えるようになりましたので「.txt」から「.bat」に変えましょう。
![写真18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/6a112f50-5df7-2605-129d-42c606d8f859.png)
これでバッチファイルが作成されました！

※注意！文字コードがUTF-8の場合文字化けしてバッチが起動しない場合があります。なので以下のように文字コードを「ANSI」にしましょう。
![写真19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/1825d739-4242-bfea-6a13-c793f1b993f9.png)
~~あーめんどくせ。UTF-8も対応しろよ。~~
</dd>
  <dt>④バッチファイルを起動する/⑤20ファイルが選別されれば終了</dt>
  <dd>作成したバッチファイルをクリックして起動するだけです。コマンドプロンプトが表示されるので待ちましょう。
ローカル上でかつ、ファイルが20個程度だと一瞬で終わります。が、サーバーかクラウド、かつ大量のファイルの場合時間がかかります。
</dd>
  <dt>⑥ファイル移転されているか確認する</dt>
  <dd>出力されたログファイルを見ましょう。
![写真20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/3e7557e9-10d4-d145-b81a-5ed61f25eaf2.png)
これが20行ほどありましたらOKです。ファイルも見てみましょう。
![写真21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557410/7facf8b8-327b-10d0-3348-7685cdbf243d.png)
コピーされていますね！これでファイル移動は完了です。
</dd>
</dl>
#まとめ
いかがでしたでしょうか？このように、バッチファイルを作成すると一瞬でファイル移動が終わります。
是非使ってみて下さいね！

好評でしたらIF文を作成した確認バッチファイルの作り方も作成します！
参考記事：Windowsのdirコマンドでファイル名の一覧を取得する
        (https://www.atmarkit.co.jp/ait/articles/0412/04/news014.html)