ディスクユ−ティリティ集

ダウンロード (diskutl.zip:46KB)

 ディスクユーティリティ集は、MS-DOSウィンドウ上,、または、バッチファイル内で動作するMS-DOS 32ビットアプリケーションで、LS.EXEとDUT.EXEの二つのプログラムがあります。

 LS
UNIXのlsに似たファイル一覧表示プログラムです。

 コマンドライン: LS [-options] [wild-path1 [wild-path2]...]  

options:

   スクリーンショット
 DUT
ディスク上のファイルを種々に操作するプログラムです。

 コマンドライン:DUT command command-option  
command機  能
cmpfileファイル内容の比較
timecmpファイル日付の比較
fdateファイル日付の変更
searchファイル内容のバイナリ検索
whereisファイルの所在検索
replaceファイルの置換
mirrorミラーリング・バックアップ
errlevバッチファイルのリターンコード設定
lha
zip
unzip
アーカイヴユーティリティへのリンク
volcheckボリューム・ラベルのチェック
   コマンド名は一意であれば全ての文字列を指定する必要はありません
ファイル内容の比較

 cmpfile パス名1 パス名2 [B] [S] [T[n]] [M] [Ln] [R]
 2つのファイルの内容をテキストまたはバイナリ形式で比較し、不一致の場合は、不一致となった行番号(テキスト比較)、もしくは、ファイル先頭からの16進位置(バイナリ比較)を表示します。不一致時のプログラムのリターンコードは、ゼロ以外の値を返します。
 パス名2のファイル名または拡張子は省略することができます。この場合、省略された部分は、パス名1から補正されます。ファイル名を省略する場合は、パス名2の最後を'\'で終了することにより指定します。
パラメタ説  明
Bバイナリ形式で比較
S比較結果をstdoutに出力
T[n]TABを適当な数の空白に置き換えて比較
 nはTABの幅で、省略値は 8
M不一致時にメッセージを表示せず、リターン・コードのみ通知
Ln不一時の最大表示行数
 nはTABの幅で、(Lオプション省略時は、テキスト比較の時5、バイナリ時15)
Rパス1とパス2を同一ディレクトリ構造とみなし再起的に比較
(ex)
 DUT cmpf file1.c dir\ t (パス名2 : dir\file1.c)
 DUT cmp file1.exe file2 B (パス名2 : file2.exe)
 DUT cm file1.xyz file.abc DUT cmp *.c F:\backup\ RL1
  (カレントディレクトリ及びサブディレクトリ内の全ての*.cを比較し、不一致時は1行のみ表示)
ファイル日付の比較

 timecmp パス ファイル名 [R]
 「パス」に該当する全てのファイルの最も新しいものと、「ファイル名」の日付を比較し、「ワイルドパス」側の日付の方が新しければ、ゼロ以外の値を返します。
 「パス」にディレクトリを指定した場合、サブディレクトリ内のファイルも比較対照となります。
 Rパラメタを指定すると、パス末尾のファイル名ががワイルドカードの時、サブディレクトリも同じワイルドカードでファイルを検索し日付を比較します。
 このコマンドは、大きなアーカイヴファイルを更新するときの時間節約や、最新のファイルに更新するときに使用します。
(ex)
 DUT timecmp c:\download downprogs.lzh
 if errorlevel 1 DUT lha u -xr2 downprogs c:\ download

 DUT timecmp homepage\*.htm htmlback.lzh
 if errorlevel 1 .....

 DUT timecmp prog.c prog.obj
 if errorlevel 1 compile prog.c
ファイル日付の変更

 fdate 元のファイル 変更ファイル
 「元のファイル」の最終更新日時を「変更ファイルに」コピーします。直接、日時を指定する場合は、「元のファイル名」の代わりに「#年月日時分秒」を2桁づつ続けて12桁で指定し、現在の日時を指定する場合には、#のみ指定します。また、年は、西暦の下2桁を指定します。
(ex)
 DUT fdate srcfile destfile
 DUT fd #000115120030 destfile (2000.1.15 12:00:30)
 DUT fd # destfile
ファイル内容のバイナリ検索

 search ファイル名 キーワード [C]
 「キーワード」でファイルをバイナリ検索し、ファイル先頭からの位置を16進で表示します。
 キーワードの先頭に#を指定すると以降を16進数とみなします。
 #で始まるキーワードを指定したい場合は、#を2つ続けて指定します。
 'C'パラメタを指定すると、キーワードがヒットするごとに、続行確認メッセージが表示されます。
(ex)
 DUT search targfile MS-DOS
 DUT sea targfile #0D0A1A
 DUT se targfile ##include C
ファイルの所在検索

 whereis ファイル名 [開始ディレクトリ]
 「ファイル名」を「開始ディレクトリ」から再帰的に検索しヒットしたものを表示します。ファイル名はワイルドカード形式で指定することもできます。
 「開始ディレクトリ」は、[ドライブ:][ディレクトリパス]の形式で指定します。省略値は、それぞれ、カレントドライブ、ルートディレクトリとなります。
(ex)
 DUT where *.bak
 DUT w *.tmp d:\backup
ファイルの置換

 replace 置換元パス 置換先ディレクトリ [置換パラメタ] [s] [v] [除外]
 「置換元パス」のファイルを「置換先ディレクトリ」に対して、「置換パラメタ」に従って、置換/追加/無操作のいずれかの処理をします。
 「置換パラメタ」は、用途に従って以下のように指定します。
d置換先に同一名のファイルがあり、日付照合し新しければ置き換える
a置換先になければ追加する
m'd'と'a'の処理を同時に行う
指定なし置換先に同一名のファイルがあれば無条件に置き換える


 [その他のパラメタ]
s置換元パスをサブディレクトリも含めて、再帰的に検索する。このとき、置換元のサブディレクトリが置換先にない場合は、自動的に作成。
v置換/追加したファイルと元のファイルを照合する
除外置換の検索対象から除外する名前を半角の/の後に続けて指定する。
複数指定する場合は半角の ; で区切って指定する。
名前は次のいずれかの形式で指定する。

 ・ファイル名
 ・ワイルドカード形式のファイル名
   *. は拡張子を持たないファイル名を意味する)
 ・\ディレクトリ名
(ex)
 DUT replace *.c c:backup m
 DUT rep *.dat c:\save d
 DUT rep HPdir d:HPdir msv
 DUT rep HPdir d:HPdir ms /*.tmp;*.;\debug
ミラーリング・バックアップ

 mirror ミラー元ディレクトリ ミラー先ドライブ [log=path] [v] [除外]
 ミラー元ディレクトリ以下の内容をミラー先ドライブに、前項「ファイル置換」の置換パラメタ'ms'と同じ規則でバックアップします。
 'v', '除外'オプションも「ファイル置換」と同じ機能です。
 logオプションを指定すると、ミラー先ドライブにあってミラー元にないファイルを削除するためのバッチコマンドをpathに出力します。pathにbatファイルを指定すれば、そのまま実行することでファイルが削除されます。ただし、読み込み専用属性をもつファイルなど、直接削除できないファイルは手動で削除して下さい。

バッチファイルのリターンコード設定

 errlev errorlevel番号
 「errorlevel番号」(0〜9)をリターンコードとしてコマンドプロセッサに復帰します。復帰先がバッチファイルの場合、'if errorlevel'で、この値をテストすることができます。

(ex) DUT errlev 3

アーカイヴユーティリティへのリンク

   lha  command-line
   zip  command-line
   unzip command-line
 ファイルの圧縮解凍をコンソールやバッチファイルのコマンドラインから行いたい場合に使用し、command-lineに指定されたパラメタを、そのままアーカイヴァに引き渡します。
 以下のDUTコマンドに対応するダイナミック リンク ライブラリ(dll)がインストールされていない場合、この機能は使用できません。

コマンド機能必要なDLL
lhaLZH形式の圧縮解凍UNLHA32.DLL
zipZIP形式の圧縮ZIP32J.DLL & ZIP32.DLL
unzipZIP形式の解凍UNZIP32.DLL

 各アーカイヴァのコマンドラインの指定方法は、それぞれのユーティリティを参照して下さい。

(ex) DUT lha e -xrm backup temp\

ボリューム・ラベルのチェック

 volcheck ドライブ名 ラベル名
 ドライブ上のボリュームラベルと、パラメタで指定されたラベル名を比較し、異なる場合は、ゼロ以外の値を返します。比較する際、アルファベットの大文字と小文字は、区別しません。

(ex) DUT volcheck e: "DAILY BACKUP"

修 正 記 録

[V1.6] [V1.5] [V1.4]
©2002 YManTOPへ