[前の記事]« [NT系]"&"などの特殊記号を含むファイルの文字列の置換方法
[次の記事]バッチで実行するSQLファイルにパラメタを与える方法 »

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

▲カテゴリー「COPY,XCOPY…ファイルやディスクの複写・連結・バックアップ」索引へ

FDの交換を促しながらCOPYをしたい

448) FDの交換を促しながらCOPYをしたい! TABACCO 2003/07/18(金) 23:01


HDDにディレクトリを含む数個のファイルがあり(総容量は数MB程度)、これをFDに順次コピー(バックアップ)したいのですが、1枚のFDが一杯になったら、次のFDに交換するように促しながら進めることのできるバッチファイルを組めないものかと考えています。
XCOPYのERRORLEVEL等を利用して一時停止し、その間にFDを交換できるようなバッチファイルが作成できるでしょうか?

449) Re:FDの交換を促しながらCOPYをしたい! ふぇむ 2003/07/19(土) 02:07


>HDDにディレクトリを含む数個のファイルがあり(総容量は数MB程度)、これをFDに順次コピー(バックアップ)したいのですが、

おおまかな方針として、対象のファイルないしディレクトリ群を、まず LHA32 等で圧縮&アーカイブして1つのファイルにし、次に何らかのシェアウェアやフリーソフトのファイル分割コピーツールを使う(または、単純に分割するだけの ツールでFDサイズにファイルを分割し、ファイルをコピーするバッチコマンドスクリプトは書く)、というような形態はどうでしょうか。



463) Re2:FDの交換を促しながらCOPYをしたい! TABACCO 2003/07/27(日) 19:33


ふぇむさん、レスが遅れて申し訳ありませんでした。

ふぇむさんが言われるような方法でも問題ないのですが、私以外の誰でもこのコピーが自動で行え、復元が簡単にできることを考えると、やはり、圧縮なしでコピーできないかと希望します。

DOSコマンドの組み合わせで、FDの残量の判定をすることは難しいのでしょうか?

464) Re3:FDの交換を促しながらCOPYをしたい! ふぇむ 2003/07/28(月) 06:57


>ふぇむさんが言われるような方法でも問題ないのですが、私以外の誰でもこのコピーが自動で行え、復元が簡単にできることを考えると、やはり、圧縮なしでコピーできないかと希望します。
>DOSコマンドの組み合わせで、FDの残量の判定をすることは難しいのでしょうか?

ということは、コピーする各ファイルのサイズはフロッピーの容量に比べてある程度小さい、ということなのですね。圧縮はしなくてもいいですが、アーカイブ せずにファイルのままコピーすると、フロッピー容量の利用効率が低くなる(もしフロッピーよりも大きいファイルが1つでもあるとそれ以上すすめないし)こ とをちょっと懸念しますが、おそらく想定されている状況ではそのような懸念は不要なのでしょう。

フロッピーの空き容量の判定は、例えば以下のような方法でどうでしょう。
(心臓部だけ書きます)

for /f "tokens=3" %%f in ('"dir %__TARGET_DRIVE%\ | findstr "空き領域""') do ( set __DRIVE_SPACE=%%f )

set __DRIVE_SPACE=%__DRIVE_SPACE:,=%


ファイルをコピーする前に、上記でフロッピーの残容量をチェックして、比較して、フロッピーの残容量がファイルサイズよりも小さければ、次のフロッピーを入れるような指示を出して入力待ちするようなループを組めば、なんとか所望のものができそうな....



452) Re:FDの交換を促しながらCOPYをしたい! Hellcat 2003/07/19(土) 17:05


>HDDにディレクトリを含む数個のファイルがあり(総容量は数MB程度)、これをFDに順次コピー(バックアップ)したいのですが、1枚のFDが一杯になったら、次のFDに交換するように促しながら進めることのできるバッチファイルを組めないものかと考えています。

FDの空き容量を考慮しながらファイルを圧縮・コピーするツールとして「kmtar パワーアップ版」(puk37bn.lzh)を紹介します。
kmtarパワーアップ版は、ファイルを圧縮するツールですが、FDが満杯になるとFDの交換要求メッセージを出力するよう指定できます。
交換FDには他のファイルが既に存在していても差し支えありません。空き領域に可能な限り書き込んで、満杯になると次々とこのメッセージを出力しファイルの書き込みを継続します。

【使い方】

(1)圧縮格納
例えばD:\DIR_1ディレクトリーのすべてのファイルをアーカイブ・圧縮しFDに格納したい場合
TAR -cvfz9 A:\PACK.000 D:\DIR_1\*.*
とします(PACK以外の名称でも可)。

TAR -cvfz9 A:\PACK.000 D:\DIR_1
のように、ディレクトリーを指定すると当該ディレクトリー及びサブディレクトリーのすべてのファイルが、ディレクトリー構造を含めた形でアーカイブ・圧縮されます。

A:\PACK.000のように拡張子に000を指定することで、kmtarパワーアップ版に対してFDへの分割出力を指示します。
000を指定しないと分割機能を利用できません。
最初のFDにはPACK.000として書き込まれます。
以下、FDを交換するたびにPACK.001 PACK.002という形で拡張子の番号がカウントアップされます。

-cvfz9のz9は高圧縮を指示するスイッチです。z1がスピード重視、以下z2,z3とするごとにスピードは落ちますが圧縮率が高くなっていきます。

(2)解凍復元
圧縮ファイルを使ってHDDのD:\DIR_1ディレクトリーにファイルを復元する場合は、
まずカレントディレクトリーをD:\DIR_1に移動、PACK.000が入っているFDをセットし
TAR -xvf A:\PACK.000
とするとカレントディレクトリー上にファイルが解凍されます。以下、FDの交換メッセージが出力されるので順次FDを交換します。
ディレクトリー付きでアーカイブ・圧縮した場合は、ディレクトリー構造を復元しながら解凍するのでカレントディレクトリーの位置に注意が必要です。

これはDOS版のツールです。私はWinXPで使用していますが正常に動作しています。
ロングファイルネームには対応していません。
もしかしたら、全角文字のファイル名称を有するファイルは、半角に変えた方がよいかも知れません。
kmtarパワーアップ版は多機能です。詳細はマニュアルをご覧下さい。

【所在】
puk37bn.lzh
http://www.vector.co.jp/soft/dos/util/se004931.html

【参考】
その他UDというツールがあります。バックアップするときFDが領域不足になると交換メッセージを出力します。
http://www.vector.co.jp/soft/dos/util/se010858.html

this article refers Vector Soft Library..

462) Re2:FDの交換を促しながらCOPYをしたい! TABACCO 2003/07/27(日) 19:20


Hellcatさん、レスが遅れました。申し訳ありません。

>「kmtar パワーアップ版」(puk37bn.lzh)を紹介します。
>その他UDというツールがあります。

紹介していただいた両方とも、使えそうです。
確認はこれからですが、UDの方が簡単そうです。

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


カテゴリー「COPY,XCOPY…ファイルやディスクの複写・連結・バックアップ」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

2003年07月18日 11:51に投稿されたエントリーのページです。

ひとつ前の投稿は「[NT系]"&"などの特殊記号を含むファイルの文字列の置換方法」です。

次の投稿は「バッチで実行するSQLファイルにパラメタを与える方法」です。

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

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