Wir - Version 1.10

Copyright (c) 2000-2001, Altair☆ (NBG01720@nifty.ne.jp)

概要

wirは、Windows 9xで拡張されたロング・ファイルネームを、それに対応していないDOSで表示するためのソフトウェアです。

また、OS/2環境では、Windows 9xのロング・ファイルネームを、.LONGNAME拡張属性として設定する機能もありますので、Windowsロング・ファイルネームをプレゼンテーション・マネージャ上に簡単に反映できます。

動作要件

DOS (4.01以降)、または、その互換環境(DOSモードで起動された Windows 9xや、OS/2 3.0以降のDOSセッションも含む)を搭載した IBM PC/ATまたは、PS/2 (PS/55)互換機。

ダウンロード

インストール

このアーカイブを解凍して得られたDOS/ディレクトリの下にあるwir.exeを、DOSのPATHの通ったディレクトリに移してください。

あなたが、OS/2ユーザでなければインストールはおしまいです。

また、OS/2ユーザであっても、wirをDOSセッションでしか使わないつもりなら、やはり、ここでインストール作業はおしまいです。しかし、あなたがOS/2ユーザであれば、.LONGNAME拡張属性の設定機能を実現する補助プログラムと、OS/2のVIOからもwirを呼び出せるようにするためのREXXスクリプトもインストールしておくと便利でしょう。

OS2ディレクトリ(OS/2フォルダ)の下に、ふたつのREXXスクリプトが用意してあります。どちらも、OS/2のPATHの通ったディレクトリに移してください。

wir2ea.cmdが拡張属性設定、wir.cmdがDOS用に作られたwir.exeを呼び出すREXXスクリプトで、Scott Maxwellさんによって作られたPipeDOSの助けを借りますので、PipeDOSもインストールしてください。PipeDOSは、http://hobbes.nmsu.edu/pub/dos/や、そのミラー・サイトに公開されています。

使用方法

Syntax:
wir
[drive:][path/][filename] [/3] [/4] [/A[adshr]] [/LFN] [/NU] [/O[nedsg]] [/B] [/F] [/L] [/N] [/EA] [/JA] [/NEC] [/IGNSUM] [/?]
drive:/path/filename

指定のディレクトリーのファイルをリストするか、または特定の名前や拡張子をもつファイルをリストします。

パターンの中の‘*’と‘?’はワイルドカードとして解釈されます。

/3

ファイル・サイズを表示する際、値を3ケタ毎に区切ります。

/4

ファイルの作成日時を表示する際、年を4桁表示にします。このスイッチはディフォルトでonです。年を2桁表示にしたい場合には、“/-4”とします。

/A

指定する属性をもつディレクトリーとファイルの名前だけを表示します。特定の属性を指定せずにこのパラメーターを使用すると、隠しファイルとシステム・ファイルを含むすべてのファイルの名前が表示されます。

これらの値の任意の組み合わせを使用して、値と値の間にスペースは入れません。また、複数の指定を行う場合でも、/Aスイッチは2回以上に分けないでください。分けられた場合、最後の/Aスイッチの指定のみが有効です。

以下のリストに、属性 として使用することができる値を記述します。

H隠しファイル
-H隠しファイル以外のファイル
Sシステム・ファイル
-Sシステム・ファイル以外のファイル
Dディレクトリー
-Dファイルのみ (ディレクトリーはない)
A保存(バックアップ)の準備ができているファイル
-A最後にバックアップしてから変更されなかったファイル
R読み取り専用ファイル
-R読み取り専用ではないファイル

/LFN, /LONG, /LONGNAME

Windows 9xのLFNエントリが存在するファイルのみを表示します。

/NU

ファイルシステム・タイプの確認に、非公開のDOSファンクション呼び出しをしないようにします。Update 13以前のNovell DOS 7などの一部の互換DOSで、明示的あるいは暗黙的に指定したドライブが FAT16ドライブであるにもかかわらず“Not a FAT16 drive”というメッセージが出てしまう場合に、このスイッチを試してみてください。

/O

ディレクトリーとファイル名を、要求された分類順序に従って表示します。

分類順序を指定せずにこのパラメーターを使用すると、ディレクトリーの名前がアルファベット順に分類されて、そのあとにファイルの名前がアルファベット順に分類されて表示されます。(“/OGNE”と等価)

これらの値の任意の組み合わせを使用して、値と値の間にスペースは入れません。また、複数の指定を行う場合でも、/Oスイッチは2回以上に分けないでください。分けられた場合、最後の/Aスイッチの指定のみが有効です。

以下のリストでは、分類順序 に使用できる値を説明します。

Nアルファベット順
-N逆アルファベット順
E拡張子によるアルファベット順
-E拡張子による逆アルファベット順
D日付と時刻、最も古いものから
-D日付と時刻、最も新しいものから
Sサイズ、小さい順
-Sサイズ、大きい順
Gファイルの前に分類されたディレクトリー
-Gファイルの後に分類されたディレクトリー

/B

先頭に情報と要約を付けずに各ディレクトリー名またはファイル名をリストし、Windows 9xのロング・ファイルネーム・エントリがあれば、タブ文字に続いてそれを表示します。

/F

完全修飾ファイル名を表示します。完全修飾ファイル名とWindows 9xのロング・ファイルネーム・エントリ以外の情報は表示されません。完全修飾ファイル名は、ドライブ指定子、ディレクトリー名、およびファイル名から構成されます。

Windows 9xのロング・ファイルネーム・エントリがあれば、タブ文字に続いてそれを表示します。

/L

ディレクトリー名とファイル名を小文字でリストします。

Windowsロング・ファイルネームは小文字に変換しません。

/N (OS/2環境、または、OS2のDOSセッションでのみ有効)

HPFSフォーマットで、以下の情報を表示します。


/EA (OS/2環境、または、OS2のDOSセッションでのみ有効)

ファイルやディレクトリにロング・ファイルネーム・エントリがあれば、それを、.LONGNAME拡張属性に変換するために、wir2ea.cmdに渡します。wir2ea.cmdは、バックグラウンドでそれを処理します。

告知メッセージ以外、何も表示しません。

/IGNSUM

ロング・ファイルネーム・エントリのチェックサムを無視します。

Linuxのdosfsckは、不正なファイル名を“fsck????.ren”にリネームしますが、ロング・ファイルネーム・エントリを残します。通常は、ファイル名が変わったことにより、そのチェックサムが変わりロング・ファイルネーム・エントリのそれと異なってしまうため、ロング・ファイルネームは表示されません。wirは、/IGNSUMを指定すると、チェックサムの確認をしません。dosfsckでファイル名が変えてしまった直後に、元のファイル名が何んだったのか知りたいことがあったので、このスイッチを設けました。

/JA

表示に Shift_JISコードを用いて良いことを指示します。

このスイッチを省いた場合には、2バイト文字コードに対応したバージョンのDOS環境で、コードページが 897、932、942、943のいずれかの場合“/JA”を、それ以外の場合“/-JA”が仮定されます。

このスイッチが暗黙的にあるいは明示的に指定されていない場合、US-ASCII文字集合以外の文字は‘?’と表示します。

OS/2環境での制約事項

REXXスクリプトwir.cmdは、コードページのチェックをさぼっており、/JAスイッチが明示されなかった場合、以下の条件で、Shift_JISコードを用いるか否かを判別します。

DOSコマンド・プロンプト

DOS環境同様の上に述べた判断をします。

OS/2コマンド・プロンプト

2バイト文字コードに対応しているか否かで判別します。韓国語版や中文版などのOS/2で誤動作の可能性がありますので、その場合には“/-JA”を明示してください。

XFree86/OS2環境

環境変数LANGの値の先頭2文字が“ja”(大文字小文字同一視)であるか否か。

/NEC

ロング・ファイルネームを表示する際に、同一の文字に対してJIS X0208、X0212規格外の、俗に言うIBM選定文字とNEC選定文字で異なる文字コードが割り当てられている文字を表示する場合、NECコードを使うようにします。

このスイッチが指定されないか“/-NEC”が明示される場合、IBMコードを優先します。

このスイッチの指定如何にかかわらず、JIS X0208、X0212文字集合に定義されている文字は、たとえ、NEC選定文字やIBM選定文字として別の定義があっても、JIS規格のコード・ポイントをシフトJISエンコードして表示します。

/?

プログラムのバージョン番号とヘルプ・メッセージ、ライセンス項目を表示します。

ソース・コードについて

ソース・コードを公開していますが、C言語を高級言語としてではなく、マクロ・アセンブラ的に使用している個所が多くあります。CPUレジスタを参照するif文や、インテル系CPUのアーキテクチュアに依存したコーディングとなっていますので、他のアーキテクチュアの環境への移植は困難だろうと思います。また、処理系としては、Borland C++ 3.00 日本語版を使用しました。

変更履歴

1.10 (2001/02/15) 1.00 (2001/02/09)

Copyright Notice

このソフトウェアは、作者が自分で使うために作ったものを公開しています。このソフトウェアの使用によって、作者以外の者が何らかの損害を被ったとしても、作者は一切の責任を負いませんので、予めご了承ください。

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.


Copyright (c) 2000-2001, Altair☆ <NBG01720@nifty.ne.jp>
http://www.vector.co.jp/authors/VA000199/