以下のテキストをコピーしてテキストファイルに張り付けて、
dir_copy.bat等の名前で保存して、ご使用ください
※下記参考の拡張機能をインストールした方は、 コードの横のコピーボタンからクリップボードにコピーできます 素敵な機能主に個人PCの作業用に作ったbatなので、使い方は限定的です
改変、改造、ご自由に
もっとこうしたら良くなるのに!とかは多分にあるかと思いますが
20分程度で作った超絶個人向けのbatですので、あしからず
使い方としては、コピーしたいフォルダを作ったbatファイルにD&Dしてくださいませ
※ディレクトリはちゃんとコピーされるかな? 単一ファイル一覧のみを想定していたので、 ディレクトリコピーの動作は未検証です うまく動かなかったらゴメンなさいdir_copy.bat
@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
::高みを目指したいプログラマー
::最新の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
応用編
####D&Dとタイトルに書きましたが
####対象のフォルダをコピーする際に
####作ったbatに直接D&Dするのではなく
####下記のようなstart.batを作成して、
####「送る(Sendto)」から使ったほうが
####便利だと後から気づきました
####(最小化して欲しかった)
####なのでstart.batは応用ということで
####windows キー+R -> shell:sendto
####sendto に dir_copy_start.bat のショートカットを置く
dir_copy_start.bat
@echo off
::start [/オプション] コマンド
::主なオプション
::/d ディレクトリ名 コマンドの作業ディレクトリを指定
::/min 実行するコマンドのウィンドウを最小化
::/high 優先度「高」で実行
:: %1 のファイルパスを渡す
start /min c:/dir_copy.bat %1
::@pause
#「このプログラムやページ作りの参考になった資料」↓
[Qiita Markdown 書き方 まとめ]
(https://qiita.com/shizuma/items/8616bbe3ebe8ab0b6ca1)
このプログラムを作るのに役立ちました!ってコレはQiitaの書式
[Markdown記法 チートシート]
(https://qiita.com/Qiita/items/c686397e4a0f4f11683d)
このプログラムを作るのに役立ちました!ってコレも書式参考
Catalpa Markdown 早見表
このプログラムを作るのに役立ちました!ってコレもまたまた書式参考
[Qiitaのマークダウンで色をつける方法[140色]]
(https://qiita.com/twipg/items/d8043cd4681a2780c160)
これは文字色を変えたい場合の参考(ほとんど関係ない)
[Qiita Markdown記法:コードブロックに対応する言語は...]
(https://qiita.com/otagaisama-1/items/22d92d9788eee64ac701)
コードブロックの Batchfile を見つけました。。。
[Qiitaをより便利にするChrome拡張機能をつくりました]
(https://qiita.com/howdy39/items/e6136b8454099ebfef29)
まさかのブラウザの拡張機能で
Qiitaを見やすく「行番号を」表示する方法があるとは
よく使う人は拡張機能をインストールして、コードを見やすくしましょう!
コピー機能ありがとう!
Google 翻訳 URL/ウェブページやドキュメントを翻訳する
コレは English(Google Translate) で利用しました。
Yandex 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
#最後に
私に初めて windows のファイルコピーは
「本当に」奥が深いと教えてくれた
日本の「天才」プログラマーの一人として
数えられているお方の発言を紹介して終わりとする
[登 大遊氏- Windows のファイルのコピーは、驚くほど奥が深い。Facebook]
(https://m.facebook.com/dnobori/posts/2142836202459674)
See the Pen QiitaLGTMTestPreview by ゲームプログラマー⛅あの日見たバグの名前を僕達はまだ知らない。 (@game_programer) on CodePen.