D&D でフォルダ名を取得して、ファイルリストを元に指定フォルダに順番にファイルをコピーする

#[English(Google Translate)](https://translate.google.com/translate?sl=ja&tl=en&u=https%3A%2F%2Fqiita.com%2Fgame_programer%2Fitems%2Fc5449484fea66b80988d)

#### 以下のテキストをコピーしてテキストファイルに張り付けて、
#### dir_copy.bat等の名前で保存して、ご使用ください
<font color="Red">
※下記参考の拡張機能をインストールした方は、
　コードの横のコピーボタンからクリップボードにコピーできます
　素敵な機能
</font>

- - -

#### 主に個人PCの作業用に作ったbatなので、使い方は限定的です
#### 改変、改造、ご自由に

#### もっとこうしたら良くなるのに！とかは多分にあるかと思いますが
#### 20分程度で作った超絶個人向けのbatですので、あしからず

- - -
#### 使い方としては、コピーしたいフォルダを作ったbatファイルにD&Dしてくださいませ

<font color="Red">
※ディレクトリはちゃんとコピーされるかな？
　単一ファイル一覧のみを想定していたので、
　ディレクトリコピーの動作は未検証です
　うまく動かなかったらゴメンなさい
</font>


# dir_copy.bat


```Batchfile
@echo off

::対象のファイルリストを設定
::とりあえずc直下想定、好きなところに作ってください
set file_list=c:\file_list.txt

::対象のコピー元ディレクトリを設定
::ココのf1にD&Dされたフルパスが取得できます
::完全フルパスでも""で括りましょう 何かの原因でそれが失敗してしまわないために
set dirfrom="%~f1"

::対象のコピー先ディレクトリを設定
::copy 時に""で括らないとコマンドとして認識しないので注意
::フォルダが無い場合は怒られるかも？
::あぁ、未検証、フォルダが無い場合はフォルダを作ったらいいだけですので、ご自由に
set dirto="C:\copy_hoge"

::対象のドライブに移動
cd /d %~d1\

::対象のカレントディレクトリに移動
cd %dirfrom%

::ファイル名一覧のみ指定のテキストファイルに書き込む
dir /a-d /b *.* > %file_list%

::移動したディレクトリのファイルから指定のディレクトリに file_listを元に ファイルを順番にコピー
for /f %%i in (%file_list%) do (
 xcopy %%i %dirto% /y
)

::不要になったファイルリスト削除
::file_list を削除したい方は :: のコメントアウトを外してください
::del %file_list%

::上層のstart bat から呼ばれる場合を考慮して
::自己終了しないので　自己終了を自ら呼びます
@exit 

::@pause
```
# robocopy
```Batchfile

::高みを目指したいプログラマー
::最新のwindowsでは既に標準搭載された、最新のコピーを使用したいなら
::こっちのrobocopyをオススメする
::フォルダ名の冗長性(256)回避など色々と便利だ
::しかもディレクトリはコピーしたくないという意思も感じられるオプション /xd *
::複雑極まる 堅牢な robocopy の オプションを知りたい方は
::後述の参考資料参照されたし
robocopy %dirfrom% %dirto% %%i /e /np /r:0 /w:0 /xd * /xa:sh /xjd /xjf /fft /xf desktop.ini Thumbs.db
```


# <font color="DarkOrange">応用編</font>

####D&Dとタイトルに書きましたが
####対象のフォルダをコピーする際に
####作ったbatに直接D&Dするのではなく

####下記のようなstart.batを作成して、
####「送る(Sendto)」から使ったほうが
####便利だと後から気づきました
####(最小化して欲しかった)

####なのでstart.batは応用ということで

####windows キー+R -> shell:sendto
####sendto に dir_copy_start.bat　のショートカットを置く

# dir_copy_start.bat

```Batchfile
@echo off

::start [/オプション] コマンド
::主なオプション
::/d　ディレクトリ名　コマンドの作業ディレクトリを指定
::/min　実行するコマンドのウィンドウを最小化
::/high　優先度「高」で実行

:: %1 のファイルパスを渡す
start /min c:/dir_copy.bat %1

::@pause
```
- - -
#<font color="Red">「このプログラムやページ作りの参考になった資料」</font>↓


[Qiita Markdown 書き方 まとめ]
(https://qiita.com/shizuma/items/8616bbe3ebe8ab0b6ca1)
このプログラムを作るのに役立ちました！ってコレはQiitaの書式
- - -
[Markdown記法 チートシート]
(https://qiita.com/Qiita/items/c686397e4a0f4f11683d)
このプログラムを作るのに役立ちました！ってコレも書式参考

---

[Catalpa Markdown 早見表](https://catalpa.osdn.jp/markdown.html)
このプログラムを作るのに役立ちました！ってコレもまたまた書式参考

- - -
[Qiitaのマークダウンで色をつける方法[140色]]
(https://qiita.com/twipg/items/d8043cd4681a2780c160)
<font color="DarkOrange">これは文字色を変えたい場合の参考（ほとんど関係ない）</font>
- - -
[Qiita Markdown記法：コードブロックに対応する言語は...]
(https://qiita.com/otagaisama-1/items/22d92d9788eee64ac701)
コードブロックの Batchfile を見つけました。。。
- - -
[Qiitaをより便利にするChrome拡張機能をつくりました]
(https://qiita.com/howdy39/items/e6136b8454099ebfef29)
まさかのブラウザの拡張機能で
Qiitaを見やすく「行番号を」表示する方法があるとは

よく使う人は拡張機能をインストールして、コードを見やすくしましょう！
コピー機能ありがとう！

---

[Google 翻訳 URL/ウェブページやドキュメントを翻訳する](https://support.google.com/translate/answer/2534559?co=GENIE.Platform%3DDesktop&hl=ja)
コレは English(Google Translate) で利用しました。

---

[Yandex Translate](https://translate.yandex.com/translate)
コレは English(Yandex Translate) で利用しました。。。

※👆のGoogle 翻訳だとスタイルが崩れる問題があったので、
コチラを利用するようにしました。（場当たり的対応）

今度はPCだと見れて、スマホだと重くて見れないか。

とりあえず Yandex のご利用は控えるとするか。

- - -
[コマンドプロンプトの使用方法 call]
(https://so-zou.jp/software/tool/system/command-prompt/command/call.htm)
このプログラムを作るのに役立ちました！（本物）
- - -
[robocopy - Microsoft Docs]
(https://docs.microsoft.com/ja-jp/windows-server/administration/windows-commands/robocopy)
このプログラムを作るのに役立ちました！
（本物、日本語ドキュメントとしては意味不明な所があるので注意）

[つまるところrobocopyは
robocopy-j.docをダウンロードして見るのが
一番情報量多くていいのね]
(https://qiita.com/mafutaro/items/f3ed140d6b47bfee13cf)

robocopy の仕様、
windows のファイルコピー仕様を、
完全に理解できたプログラマーはどれだけいるのだろうか？
と疑問を投げかけるコマンド

しかも、ディレクトリの指定の順番を間違えるだけで
データが削除されるなど数々の罠が多い？

そして windows のファイルコピー仕様の深みにハマると危険！
深淵ドコロでは済まないウルトラスーパーでハイなブラックホール級の
深～い闇が簡単に見れるよ！

ウッ！眩暈がしてきた。。。

そんな方にはコマンドライン上ではなくGUI RichCopy をオススメするよ！

sorry! robocopy が複雑すぎたね、HAHAHAHA
とマイクロソフト様が用意してくれたGUIがあるらしい

ナンジャそりゃ！？

私は使う必要性、「権限」やバックアップの「ミラーリング」を、
行いたいわけではなかったので使用感は未使用
[Microsoft RichCopy のインストール]
(https://eizone.info/microsoft-richcopy/)

[docs.microsoft.com ユーティリティ スポットライトRobocopy GUI](https://docs.microsoft.com/ja-jp/previous-versions/technet-magazine/cc160891%28v%3dmsdn.10%29)

- - -
#<font color="Red">最後に</font>
私に初めて windows のファイルコピーは
「<font color="Red">本当に</font>」奥が深いと教えてくれた

日本の「<font color="Red">天才</font>」プログラマーの一人として
数えられているお方の発言を紹介して終わりとする

[登 大遊氏- Windows のファイルのコピーは、驚くほど奥が深い。Facebook]
(https://m.facebook.com/dnobori/posts/2142836202459674)

---

<p class="codepen" data-height="356" data-theme-id="light" data-default-tab="result" data-user="game_programer" data-slug-hash="QWyWLme" style="height: 356px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-pen-title="QiitaLGTMTestPreview">
  <span>See the Pen <a href="https://codepen.io/game_programer/pen/QWyWLme">
  QiitaLGTMTestPreview</a> by ゲームプログラマー⛅あの日見たバグの名前を僕達はまだ知らない。 (<a href="https://codepen.io/game_programer">@game_programer</a>)
  on <a href="https://codepen.io">CodePen</a>.</span>
</p>
<script async src="https://static.codepen.io/assets/embed/ei.js"></script>