2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Posted at

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

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

#今回やること
デスクトップ上会社ごとの20個のpdfファイルがあります。(ファイルの中身は、領収書PDFと考えてください。)
写真1.png

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

#どのようにして移動するのか?
以下の図のように、あらかじめ用意してある20個以上のファイルを、コマンドプロンプトで指定されたパスにある
フォルダにコピーします。
Flow2.png

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

#行動フロー
具体的にどのように行うフローは以下になります。
Flow1.png
①~⑥までのフローを順番を行いながら説明していこうと思います。

#実際にやってみる
それでは実際にやってみましょう

①ファイルを用意する
では、Excelファイルを作成します。以下のフォーマットシートを作成します。

写真1-1.png

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

次に、移動したい各ファイル名を取得しましょう。
まず、移動される前のパスが表示されているバーに「cmd」と打ち込みます。
写真3.png
打ち込んだら、このパス上のコマンドプロンプトが表示されます。
写真4.png
そこで、「dir *.pdf /b」と入力したら、、、
写真5.png
この様にすべてのpdfファイル名が表示されました!

しかし、ファイル名のみが欲しいのですが「.pdf」が邪魔ですね。その場合。表示されたファイル名をコピーしてサクラエディタへコピーしましょう。
写真6.png
そこで、一番上の「株式会社AAA」と「.pdf」の間にカーソルを合わせ「Alt + ↓」を押して一番下まで移動し、「→」を選択すると、、、
写真7.png
矩形選択されましたね!そのままバックスペースキーを押すと、、、
写真8.png
ファイル名のみになりました!これをExcelに張り付けます。
写真9.png

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

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

となります。が、これをわざわざファイル数分作成するのはめんどくさいです、、、
なのでExcelのテンプレートを使いセルコピー機能オートコンプリート機能を使用します。
あらかじめ入れておいた、パスを使用し、、、
写真10.png
この様にセルと文字列を組み合わせる書き方をします。そうしたら、、、
写真11.png
この様にファイルパスが入力されます。
同じく、「コピー先」「ログ記録」の欄を入れておきます。
写真12.png
このときに注意してほしいのは「ログ記録」の「>」はファイルを作成するというコマンドなのでそれを上書き記録をするためには「>>」を入力する必要があります。それを踏まえたうえでオートコンプリート機能を使用しましょう。
写真13.png
このまま、下へ引っ張ると、、、
写真14.png
この様にすべてのコマンドが生成されました!これをメモ帳に張り付けてバッチファイルを生成しましょう。

③メモ帳に入力してバッチファイルを作成する
以上のコマンドをメモ帳に張り付けます。 ![写真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
あーめんどくせ。UTF-8も対応しろよ。

④バッチファイルを起動する/⑤20ファイルが選別されれば終了
作成したバッチファイルをクリックして起動するだけです。コマンドプロンプトが表示されるので待ちましょう。 ローカル上でかつ、ファイルが20個程度だと一瞬で終わります。が、サーバーかクラウド、かつ大量のファイルの場合時間がかかります。
⑥ファイル移転されているか確認する
出力されたログファイルを見ましょう。 ![写真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) コピーされていますね!これでファイル移動は完了です。
#まとめ いかがでしたでしょうか?このように、バッチファイルを作成すると一瞬でファイル移動が終わります。 是非使ってみて下さいね!

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

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?