[前の記事]« HDD全体のファイル総数を知るには?
[次の記事]処理をn回実行する方法 »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「COPY,XCOPY…ファイルやディスクの複写・連結・バックアップ」索引へ
▲カテゴリー「アーカイバ(ファイル圧縮・書庫化・復元・解凍…)」索引へ

大きいファイルを1つにまとめてMOに圧縮・バックアップしたい

587) 圧縮してバックアップ uhoo 2003/09/06(土) 10:25


uhooといいます。
容量の大きいファイルをバッチファイルを使って
圧縮させてドライブにバックアップとして
保存させたいのですが出来るのでしょうか?
もし可能であれば、どなたかご教授ください。
よろしくお願いします。

588) Re:圧縮してバックアップ YanaKen 2003/09/06(土) 21:11


uhooさん こんにちは。

>容量の大きいファイルをバッチファイルを使って
>圧縮させてドライブにバックアップとして
>保存させたいのですが出来るのでしょうか?

 ぼく自身は、日常的なバックアップはXCOPYでの別ドライブへの複写で済ましている(圧縮はしてない)クチで、たまに一部のこまごましたファイルをDOS時代の(元祖)LHAで圧縮して1つにまとめる程度ですが、このLHAの場合でいえば、

lha a x:\backup1.lzh c:\abc\*.txt

 ……のようなコマンドで、「前回バックアップして以降に更新/追加された(この例ではC:\ABCフォルダ内のテキスト)ファイルを、X:\BACKUP1.LZHに(圧縮して)まとめて追加する」といった仕事ができます。
 (LHAは、現今ではその流れを組む32ビット版の"LHA32"がフリーソフトとして配布されています)

 さらにきめ細かく条件や処理の流れを制御したいとか、定型化してアイコンをダブルクリックするだけで済ませたいとか、毎日定時に実施したいとかの話に なってくると、おっしゃるとおりバッチファイルの知識なども必要になってくると思います。そのへんについて詳しく知りたい場合には、使いたい環境(最低限、Windowsのバージョン)とか具体的な用途とか、もう少し具体的な情報を添えて再度質問してみてくださいね。

※なお、ご質問の冒頭にお書きの「容量の大きいファイル」というのが、もしMPEG、JPEG、GIF、MP3……など、「圧縮技法がふんだんに使われた マルチメディア系ファイル」だった場合、それら自体がすでに一種の圧縮ファイルなので、他の圧縮ソフトでさらに圧縮してもほとんどサイズは変わりません。 念のため……。

YanaKen


590) Re2:圧縮してバックアップ ふぇむ 2003/09/07(日) 10:19


>>容量の大きいファイルをバッチファイルを使って
>>圧縮させてドライブにバックアップとして
>>保存させたいのですが出来るのでしょうか?

uhoo さんのおっしゃるようなことは可能です。が、とりあえずご参考ということで以下。

私は、バックアップは何通りかの手段で定期的に行っていますが、デイリーの自動バックアップは、自作のバッチスクリプトコントロール下で心臓部分には Windows2000professional に最初からついている NTbackup を使っています。NTbackup は、プログラム→アクセサリ→システムツール→バックアップ、で起動されるもので、指定されたフォルダ群・ファイル群を指定された条件で1つのアーカイブ ファイルに固めたバックアップファイルを作成してくれるものです。

NTbackup は、バックアップ対象のリスト指定は画面からやらなければなりませんが、バックアップの動作自身はコマンドラインから起動でき、このときに引数でいろいろ 指定が可能なので、実質の制御は全て自前のバッチコマンドスクリプトで行っています(ログをとりつつバックアップ動作を制御し世代管理を行うコアのスクリ プトをつくり、それをさらに外側からコントロールする起動スクリプトをつくって、それを適当に ATコマンドで定期起動登録しています)。

バックアップの対象やオプション指定によっては20G近くの巨大なファイルができます。以前はこれを先のスクリプト中で LHA32.exe で自動的に圧縮してオリジナルは削除していました。しかし、圧縮処理の心臓部である unlha32.dll に不具合が含まれていたらしい時期があったらしく、圧縮は正常終了しているものの、必要なときに解凍しようとしたらきちんと解凍できなかったりしたことが あり、巨大なファイルの圧縮は時間もかかってリスクも高いので、バックアップしたそのときに自動圧縮するのではなく、もし圧縮するならば別途必要に応じて 手操作で圧縮するようにしました。

圧縮・解凍は、ディスク容量は多少節約できるかもしれませんが、時間もかかるしリスクも高くなるということも含めて考慮が必要だと思います。

※圧縮処理は、内部的には一旦ディスク内にテンポラリで圧縮ファイルを生成しながら動くので、そのテンポラリの場所によっては(デフォルトは C:\Documents and Settings 以下のそのユーザの Temp フォルダだと思いますが )ターゲットのドライブに空きが十分にあっても容量不足で圧縮に失敗します。LHA32.exe で行う場合、オプションでワークディレクトリも指定できるので、十分に空きのあるドライブ上にワークを取るよう指定することをお勧めします。



603) Re2:圧縮してバックアップ uhoo 2003/09/09(火) 16:34


YanaKenさんありがとうございます。

アドバイスいただいたLHA32を探してみたんですが、
現在のところそのファイルを見つけられていません。
これがあればやりたかったことがかなうんですが・・・。

あるデータ(約1G弱)を圧縮させてMOドライブに
保存させたいのです。
そのデータというのも、あるフォルダの中全て、
だけというわけではなく
いくつかのフォルダに分けられているファイルを
あわせて圧縮をかけたいのです。

> ぼく自身は、日常的なバックアップはXCOPYでの別ドライブへの複写で済ましている(圧縮はしてない)クチで、たまに一部のこまごましたファイルをDOS時代の(元祖)LHAで圧縮して1つにまとめる程度ですが、このLHAの場合でいえば、

>lha a x:\backup1.lzh c:\abc\*.txt

最近はじめたばかりの素人でなので
くだらないことをお聞きしますが、
上の最初の「lha」はLHAを起動させるためのものですか?
その後の「a」はどういう意味なんでしょうか?

> ……のようなコマンドで、「前回バックアップして以降に更新/追加された(この例ではC:\ABCフォルダ内のテキスト)ファイルを、X:\BACKUP1.LZHに(圧縮して)まとめて追加する」といった仕事ができます。
> (LHAは、現今ではその流れを組む32ビット版の"LHA32"がフリーソフトとして配布されています)

やっぱりDOSで動かす圧縮ソフトは他にないんでしょうか?
ZIPだとか他にもあったんですが英語だったりして
断念しました。
なにかお勧めがあれば教えてください。

604) Re3:圧縮してバックアップ ふぇむ 2003/09/09(火) 18:34


>アドバイスいただいたLHA32を探してみたんですが、
>現在のところそのファイルを見つけられていません。
>これがあればやりたかったことがかなうんですが・・・。

Google で LHA32 で検索するとヒットすると思います。
Vectorとかにもあると思います。ただ、これは unlha32.dll も必要なので、「DLLをいれちゃいけない」といったような制限のあるマシンであれば使えないですね(LHAに限った話ではないですが)。)

>そのデータというのも、あるフォルダの中全て、
>だけというわけではなく
>いくつかのフォルダに分けられているファイルを
>あわせて圧縮をかけたいのです。

LHA32 なら、コマンドラインでアーカイブに次々と追加できるので、ニーズにあいそうですね。


>>lha a x:\backup1.lzh c:\abc\*.txt

>最近はじめたばかりの素人でなので
>くだらないことをお聞きしますが、
>上の最初の「lha」はLHAを起動させるためのものですか?

自明なので私が答えてしまいますが、そうです。


>その後の「a」はどういう意味なんでしょうか?

lha が自分で決めているコマンドラインオプションの一種で、a は append を意味します。
詳しくは、lha (lha32) を入手後引数無しで起動すると出てくるコマンドヘルプをじっくり見るといいと思います。



607) Re4:圧縮してバックアップ uhoo 2003/09/10(水) 18:19


YanaKenさんありがとうございます。
とても分かりやすく私でも出来ました。

本当にありがとうございました。

606) Re3:圧縮してバックアップ Hellcat 2003/09/09(火) 22:14


>そのデータというのも、あるフォルダの中全て、
>だけというわけではなく
>いくつかのフォルダに分けられているファイルを
>あわせて圧縮をかけたいのです。

lha.exeを使って複数のフォルダーに存在するファイルを一つにまとめ圧縮する一つの方法を御紹介します。

基本的な使い方は、
例えば、
 C:\DIR1\ABC.NHK
 C:\DIR2\ABC.NHK
 C:\DIR3\XYZ.NHK
というファイルがあり、これらをひとまとめにして圧縮し、圧縮結果をPACKED.LZHというファイルに格納する場合は、

 LHA -x1 u PACKED C:\DIR1\ABC.NHK C:\DIR2\ABC.NHK C:\DIR3\XYZ.NHK

とします。

 LHA は実行するコマンド名称
 -x1 は圧縮して格納するとき、フォルダー名称を付加して格納するよう指示するもの。したがって、C:\DIR1\ABC.NHKとC:\DIR2\ ABC.NHKはファイル名称が同一ですが、フォルダー名称が異なるため、圧縮結果のファイル(PACKED.LZH)の中で混同されることはありませ ん。
 u は圧縮ファイルを更新する、又はPACKED.LZHファイルが存在しないときは新たに作成するということを指示するもの。 a という指定の仕方もあります(u との差異は必要があれば別途御紹介します)。 

 PACKED は結果を格納する圧縮ファイルの名称(拡張子を省略するとLZHとなる)。
 
圧縮したいファイル数が沢山あってコマンドラインに指定しきれない場合は、圧縮したいファイル名称をメモ帳などを使って、例えばFILES.TXTファイルに次のように書き出しておきます。

C:\DIR1\ABC.NHK
C:\DIR2\ABC.NNN
C:\DIR3\XYZ.TBS
C:\DIR4\XYZ.FNN
C:\DIR5\XYZ.RBS
C:\DIR6\XYZ.CNN
C:\DIR7\XYZ.HBS
C:\DIR8\XYZ.KBS

そして、
 LHA -x1 u PACKED @FILES.TXT
と指定し実行すると、FILES.TXTで指定されたファイルがすべて圧縮されPACKED.LZHに格納されます。多数のファイルを指定したい場合に有効な方法です。
"@"マークを冠したファイルはレスポンスファイル(応答ファイル)と呼ばれているようです。
自動的に応答ファイルを作成する方法もあります。必要があれば別途御紹介します。

ここで御紹介した使い方はほんの一部です。LHAは多機能ですので、まずはマニュアルを読まれた方がよいでしょう。

>やっぱりDOSで動かす圧縮ソフトは他にないんでしょうか?
私が使っているものでは
 ARJ,TAR(PowerUpTAR),BZIP2があります。他にもまだ沢山あると思います。
LHAは代表的な圧縮ソフトですので、まずはLHAを手始めに使ってみたらどうでしょうか。

LHAは
http://www.csdinc.co.jp/archiver/docs/lha.html
にあります。

なお、LHAはロングファイルネームは処理できません(ショートファイルネームになります)。
ロングファイルネームで処理したい場合はLHA32がよいでしょう。

 

608) Re4:圧縮してバックアップ uhoo 2003/09/10(水) 19:02


Hellcatさん
Yanakenさん

ありがとうございました。
とても丁寧な説明ありがとうございました。

ところが、又別の問題が出てきました。
実は、LANで複数のPCがつながっているのですが
バッチファイルでネットワーク上の他のPCの
ファイルをコピーして、バッチファイルがあるPCに保存する
と言うことは出来るのでしょうか?
例えば
A と言うPCでバッチファイルを実行して
B と言うPCのZZZ.txtファイルをコピーして
A のC:\に保存する
といった感じです。

もし不可能でしたら
ネットワーク上のファイルをバッチファイルを使って
コピーなどする方法があったらそれも合わせて
教えていただけますでしょうか?
よろしくお願いいたします。

LAN環境は
ルーターにハブがつながってそこから各PCにつながってます。
OSは全て98SEです。

また分かりずらい説明ですがよろしくお願いします。

610) Re5:圧縮してバックアップ(ドライブ番号の割り当て) YanaKen 2003/09/11(木) 01:44


uhooさん

>A と言うPCでバッチファイルを実行して
>B と言うPCのZZZ.txtファイルをコピーして
>A のC:\に保存する
(中略)
>OSは全て98SEです。
 可能です。とりあえず、わかりやすいのは下記のように、AからB側をドライブ番号(H:とかZ:とか)で参照できるようにしておく方法でしょう。

(1)マシンBの、バックアップしたい対象フォルダ(あるいはドライブ全体)に「共有」の設定をして、マシンA側から見えるようにします。

(2)マシンA側では「ネットワークコンピュータ」を開いてBの共有設定されたフォルダを探し出し、右クリック→「ネットワーク ドライブの割り当て」を選択して、X:なりY:なり、使えるドライブ番号から一つ選んで設定します。このとき「ログオン時に再接続」のチェックを入れてお けば、半永久的にこの割り当てが維持されます。

 このようにしておけば、COPY Z:\*.TXT C:とか、LHA A ABC Z:\*.TXTとか、自機のHDDと同じように利用することが可能です。

YanaKen


612) Re6:圧縮してバックアップ(ドライブ番号の割り当て) uhoo 2003/09/11(木) 10:12


YanaKenさん
ありがとうございます。

そっか
ドライブの割り当て、と言う方法がありましたね。
ぜんぜん思い当たりませんでした。
さすがですね。
いろいろ教えてもらって思うんですが
凄いですね。
感謝するとともに
ちゃんと答えを出してアドバイスが出来ることに感心しました。

ほんと助かりました。
ありがとうございました。

613) Re7:圧縮してバックアップ(ドライブ番号の割り当て) YanaKen 2003/09/12(金) 01:21


uhooさん どうも。

>ちゃんと答えを出してアドバイスが出来ることに感心しました。

 いやまあ、知らないこともいっぱいあるわけですが。
 なにはともあれ、バックアップがうまくいきそうでよかったです。

YanaKen
 
 


カテゴリー「COPY,XCOPY…ファイルやディスクの複写・連結・バックアップ」索引へ
カテゴリー「アーカイバ(ファイル圧縮・書庫化・復元・解凍…)」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2003年09月06日 12:00に投稿されたエントリーのページです。

ひとつ前の投稿は「HDD全体のファイル総数を知るには?」です。

次の投稿は「処理をn回実行する方法」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート