Windowsバッチファイルで空フォルダコピー


アニメ『バッテリー』(2016)

ボール投げて受けてるだけなのに、何でこんなにわくわくするのでしょう。野球はあまり見ないので、ナイターも試合を最後まで見たことがないのですが、このアニメなら全話見られそうです。

バッテリーということで、今回はWindowsでBATファイル作ってみます。

まず適当にテンポラリディレクトリを作成。

C:\Users\takk>mkdir tmp

C:\Users\takk>cd tmp

C:\Users\takk\tmp>

C:\Users\takk\tmp>mkdir dir1\aaa\bbb\ccc\ddd

C:\Users\takk\tmp>mkdir dir1\111\222\333\444

C:\Users\takk\tmp>

このようなディレクトリ構成になりました。

C:\Users\takk\tmp>powershell gci -r -n
dir1
dir1\111
dir1\aaa
dir1\111\222
dir1\111\222\333
dir1\111\222\333\444
dir1\aaa\bbb
dir1\aaa\bbb\ccc
dir1\aaa\bbb\ccc\ddd

C:\Users\takk\tmp>

この適当に作った各ディレクトリへ適当にファイルを追加します。

C:\Users\takk\tmp>powershell "gci -r -n -at Dir | %{ echo HELLO > $_/file.txt}"

C:\Users\takk\tmp>

各ディレクトリにファイルが追加されました。

C:\Users\takk\tmp>powershell "gci -r -n -at !Dir"
dir1\file.txt
dir1\111\file.txt
dir1\111\222\file.txt
dir1\111\222\333\file.txt
dir1\111\222\333\444\file.txt
dir1\aaa\file.txt
dir1\aaa\bbb\file.txt
dir1\aaa\bbb\ccc\file.txt
dir1\aaa\bbb\ccc\ddd\file.txt

C:\Users\takk\tmp>

さてBATファイルを作ります。
動けば何でも良かったのですが、今回は空フォルダのコピーを行うBATファイルにしました。ファイル名はfcopy.batとしました。

C:\Users\takk\tmp>type fcopy.bat
cd %1
cd ..
xcopy /t/e/i %1 NEW_FOLDER

さて、バッチファイルを動かすため、フォルダを開きます。

C:\Users\takk\tmp> explorer .


dir1をfcopy.batにドラッグドロップすると、

NEW_FOLDERが生成されます。

この通りNEW_FOLDERに、dir1のフォルダ構成がそのままコピーされました。

C:\Users\takk\tmp>powershell gci -r -n NEW_FOLDER
111
aaa
111\222
111\222\333
111\222\333\444
aaa\bbb
aaa\bbb\ccc
aaa\bbb\ccc\ddd

C:\Users\takk\tmp>

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA