Windowsプロンプト(必要なファイルだけ圧縮)


アニメ『RWBY』

Webアニメという存在を初めて知りました。今やなんでもWebなんですね。全3Dのアニメですが、ゲームの動画のように見えます。私は普段ゲームをやらないので、新鮮でバトルシーンが面白いと思ました。

今回はWindowsでの圧縮です。3Dもぐりぐりうごくようになり、ストレージも無限にある今、データの圧縮なんていらないんじゃないかとも思えますが、ファイルをまとめることは、人間にとっても頭の整理になるので必要ですね。複雑な構造のディレクトリ内の特定ファイルだけを圧縮してcab形式で圧縮してみます。

先にPowerShellで実験用ファイルを作っておきます。

PS C:\Users\takk\aaa> mkdir dir1 | out-null
PS C:\Users\takk\aaa> cd dir1
PS C:\Users\takk\aaa\dir1> 1..10 | %{$r=random;$dir=$r -replace "(....)","$&\";mkdir $dir | out-null;$fname="file$_.txt"
;"HELLO" > $dir\$fname}
PS C:\Users\takk\aaa\dir1> gci -name -re -i *.txt
1295\1272\13\file6.txt
1598\7997\42\file3.txt
1689\0633\86\file4.txt
1955\2146\92\file7.txt
2310\6227\6\file1.txt
2602\6181\6\file5.txt
4748\0337\file10.txt
4829\4788\5\file9.txt
6104\6524\2\file8.txt
6827\0945\3\file2.txt
PS C:\Users\takk\aaa\dir1> cd
PS C:\Users\takk\aaa>

ここからは、コマンドプロンプト操作です。

圧縮したいファイルはfile1.txt file3.txt file5.txtとします。
これをコマンドプロンプトで抽出するには、

C:\Users\takk\aaa>dir /b/s | findstr file[135].txt
C:\Users\takk\aaa\dir1\1598\7997\42\file3.txt
C:\Users\takk\aaa\dir1\2310\6227\6\file1.txt
C:\Users\takk\aaa\dir1\2602\6181\6\file5.txt

C:\Users\takk\aaa>

抽出結果は、ファイルへ保存しておきます。

C:\Users\takk\aaa>dir /b/s | findstr file[135].txt > files

C:\Users\takk\aaa>

あとはmakecabすればよいです。

C:\Users\takk\aaa>makecab /f files
Cabinet Maker - Lossless Data Compression Tool

48 bytes in 3 files
Total files:              3
Bytes before:            48
Bytes after:             20
After/Before:            41.67% compression
Time:                     0.03 seconds ( 0 hr  0 min  0.03 sec)
Throughput:               1.51 Kb/second

C:\Users\takk\aaa>

圧縮されたファイルは、disk1\1.cabに保存されます。

C:\Users\takk\aaa>dir disk1
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は C288-F709 です

 C:\Users\takk\aaa\disk1 のディレクトリ

2017/07/29  13:14    <DIR>          .
2017/07/29  13:14    <DIR>          ..
2017/07/29  13:14               150 1.cab
               1 個のファイル                 150 バイト
               2 個のディレクトリ  169,978,245,120 バイトの空き領域

C:\Users\takk\aaa>

コメント

タイトルとURLをコピーしました