もくじ
→https://qiita.com/tera1707/items/4fda73d86eded283ec4f
やりたいこと
バッチのコマンドで拾ってきたデータから、必要なものを抜き出したい。
やり方
find
を使う。
サンプル
ためしに、カレントパスに存在するファイルとフォルダを列挙するコマンドdir
で出るデータから、必要なファイル/フォルダに絞って表示するようにする。
今回はdirで取れた情報から「target」フォルダの情報のみを最終的に表示しようと思う。
実験のためのファイル・フォルダ構成
dirだけ
dirだけ.bat
@echo off
dir > output.txt
pause
出力(output.txt)
Volume in drive C is MYSYSTEM
Volume Serial Number is 3EDB-0C5F
Directory of C:\Users\masa\Desktop\test
2019/09/11 22:19 <DIR> .
2019/09/11 22:19 <DIR> ..
2019/09/11 22:09 30 ABCDE.txt
2019/09/11 22:09 30 FGHIJ.txt
2019/09/11 22:19 0 output.txt
2019/09/11 22:19 36 sample.bat
2019/09/11 22:17 <DIR> target
2019/09/11 22:09 30 target.txt
2019/09/11 22:09 30 target2.txt
6 File(s) 156 bytes
3 Dir(s) 14,898,491,392 bytes free
dir+findその1
dir+findその1.bat
@echo off
dir | find "target" > output.txt
pause
出力(output.txt)
2019/09/11 22:17 <DIR> target
2019/09/11 22:09 30 target.txt
2019/09/11 22:09 30 target2.txt
絞れたが、フォルダ、ファイルの両方が出てしまっている。
ファイルについては、「target」を含めば拾ってしまうので、後ろに「2」がついてるファイルも出てきてしまう。
dir+findその2
dir+findその2.bat
@echo off
dir | find "target" | find "<DIR>" > output.txt
pause
出力(output.txt)
2019/09/11 22:17 <DIR> target
ディレクトリ(フォルダ)には<DIR>
というのがつくので、それでさらに絞る。
これで、今回ほしい情報は取れた。