こんにちは!皆さん!エンジニアリングしてますか!
今回は誰でもできる、Excelのオートコンプリート機能とコマンドプロンプト等を使用し、めんどくさいファイル移動をしてみたいと思います!
#今回やること
デスクトップ上会社ごとの20個のpdfファイルがあります。(ファイルの中身は、領収書PDFと考えてください。)
このフォルダ上に移動場所を作成し、その中の各フォルダに振り分けコピーしていきます。
クラウド等にファイルを転送する場合、一つずつファイル移動するのはめんどくさいですよね、、、
ですが、これらをすぐに移動できる方法がありますので是非ご参考にしてください。
#使用ツール
・Windows10
・コマンドプロンプト
・Excel
・サクラエディタ(https://sakura-editor.github.io/)
・メモ帳
#どのようにして移動するのか?
以下の図のように、あらかじめ用意してある20個以上のファイルを、コマンドプロンプトで指定されたパスにある
フォルダにコピーします。
Excelとメモ帳で作成したバッチファイルを使い、大量のファイルをコピーしていく流れとなります。
では、実際にどのように行っていくのでしょうか?
#行動フロー
具体的にどのように行うフローは以下になります。
①~⑥までのフローを順番を行いながら説明していこうと思います。
#実際にやってみる
それでは実際にやってみましょう
- ①ファイルを用意する
- では、Excelファイルを作成します。以下のフォーマットシートを作成します。
各「ファイル格納パス」と「移動先フォルダパス」と「ログ格納フォルダパス」を入力します。
※「ログ格納フォルダパス」はコマンドプロンプトの出力結果を出します。次に、移動したい各ファイル名を取得しましょう。
まず、移動される前のパスが表示されているバーに「cmd」と打ち込みます。
打ち込んだら、このパス上のコマンドプロンプトが表示されます。
そこで、「dir *.pdf /b」と入力したら、、、
この様にすべてのpdfファイル名が表示されました!しかし、ファイル名のみが欲しいのですが「.pdf」が邪魔ですね。その場合。表示されたファイル名をコピーしてサクラエディタへコピーしましょう。
そこで、一番上の「株式会社AAA」と「.pdf」の間にカーソルを合わせ「Alt + ↓」を押して一番下まで移動し、「→」を選択すると、、、
矩形選択されましたね!そのままバックスペースキーを押すと、、、
ファイル名のみになりました!これをExcelに張り付けます。
- ②コマンドプロンプトとExcelを使用しでコマンドを作成する
- さて、ここからコマンド文をまとめて作成していきます。
コピーするコマンドは「**copy**」なので株式会社AAAを移動するためには、、、
Copy %HOMEPATH%\Desktop\コピー用フォルダ\株式会社AAA.pdf %HOMEPATH%\Desktop\コピー用フォルダ\移動用ファイル\株式会社AAA >%HOMEPATH%\Desktop\コピー用フォルダ\出力ログ\一括レポートログ.txt
となります。が、これをわざわざファイル数分作成するのはめんどくさいです、、、
なのでExcelのテンプレートを使いセルコピー機能とオートコンプリート機能を使用します。
あらかじめ入れておいた、パスを使用し、、、
この様にセルと文字列を組み合わせる書き方をします。そうしたら、、、
この様にファイルパスが入力されます。
同じく、「コピー先」「ログ記録」の欄を入れておきます。
このときに注意してほしいのは「ログ記録」の「>」はファイルを作成するというコマンドなのでそれを上書き記録をするためには「>>」を入力する必要があります。それを踏まえたうえでオートコンプリート機能を使用しましょう。
このまま、下へ引っ張ると、、、
この様にすべてのコマンドが生成されました!これをメモ帳に張り付けてバッチファイルを生成しましょう。 - ③メモ帳に入力してバッチファイルを作成する
- 以上のコマンドをメモ帳に張り付けます。
![写真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」にしましょう。
あーめんどくせ。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)