良い出発点は Windows NTに付属の印刷されたドキュメントと、Windows NT CDの support\booksディレクトリにあるものでしょう。Windowsヘルプファイル も使えます。
書店やMicrosoftから入手できるWindows NTのリソースキットから 幾つかの深い情報を得られます。Microsoft TechNetも有益な情報源です。
Windows NT サーバに対する World Wide Webサポートは
http://www.microsoft.com/ntserver/
Windows NT workstation に対するサポートは
http://www.microsoft.com/ntworkstation/
にあります。
印刷されたドキュメントは幾つかのCD-ROMにあるドキュメントと同じように
Windows 95に付随しています。ヘルプファイルはスタートメニューから
使うことができます。
Windows 95リソースキットには、Windows 95に関するより深い情報が
あります。これは書店やソフトウェアを扱っている店に行けば入手できます。
World Wide Web support for Windows 95 is at:
http://www.microsoft.com/windows95/
残念ながら、Win32環境にはshebang構文やそれに類するものがありません。
コマンドラインからスクリプトを実行するのに、以下に示す二つのやり方の
一つを試せます。どちらも失敗してしまっても、perlインタープリタを
直接("perl myscript.pl"のように)呼び出すことは常に可能です。
Windows NT 4.0では、一番まともなやり方は連想ファイル型 (associated file types)
を使うことでしょう(質問 4.10参照)。
.plという拡張子とperlスクリプトを結び付けた場合には、コマンドラインで
ファイル名をタイプするだけでWindows NTがperl.exeを起動してくれます。
以下の様にPATHEXTという環境変数に.plを含めるように変更すると、
拡張子を除いたファイル名をタイプするだけで、Windows NTはタイプしたものに
“一番近い”(closest).plファイルを探し出します。PATHEXTをコマンドライン
で設定するよりは、システムコントロールパネルアプレットで設定したく
なるでしょう。そうしなければ、コマンドプロンプトウィンドウを開くたびに
コマンドラインで設定しなければなりません。
上記のような設定を行うことで、以下に挙げる cat.plという名前のスクリプトを
コマンドラインで以下の様に入力するだけで起動できます。
しかし、以下のような入出力のリダイレクトは
(できるように見えますが)できません。
スクリプトをパスに含めても良いし、ファイル対してパスをつけ加える
こともできます。
この方法はWindows95では使えないし、Windows NTでもコマンドエクステンションを
禁止している場合には使えないことに注意してください。けれども、
拡張子とperlとを結び付けていれば、エクスプローラーからperlスクリプトを
起動することができます。
もう一つの選択肢は、Perl for Win32と一緒に配布されているpl2batという perl
スクリプトをバッチファイルに“変換する”するためのユーティリティを使うことです。
このユーティリティはあなたのスクリプトの先頭に Win32 バッチ言語の
ちょっとしたプログラムを張り付けて、そのファイルでシステムが
perlインタープリターを呼び出すようにします。これはバッチを使った
賢いやりかただろう。
pl2batユーティリティを"helloword.pl"というperlスクリプトに使うと、
これによって"helloworld.bat"というバッチファイルが生成され、
このスクリプトを次の例のように起動することができます。
コマンドライン引数も実に簡単に渡せますし、スクリプトをPATHに含まれる
ディレクトリにも別のディレクトリにも置くことができまて、
pl2batプログラムはそこにあるものを正しく検索して実行します。
ファイルの連想(file association)と同様に、入出力のリダイレクトは
できません。
pl2batはperl.exeに-wスイッチを渡して起動します。もし警告メッセージが
でるのがいやで、その警告が重要でないことがわかっているのであれば、
自分でバッチファイルから-wを取り除かねばなりません。
Win32システム上での、chmodと全く等価なものはありません。ファイルの属性
を変更するには、ATTRIBというコマンドラインツール(詳しくはコマンドライン
でHELP ATTRIBとタイプしてください)を使えます。より複雑なパーミッション
については質問 4.9を参照してください。
For information on the chmod function, 質問 5.9.
Windows 95にも Windows NTにもUNIXでの"sendmail"のようなSMTPクライアント
プログラムは付属してはいませんが、幾つか存在しています。ポピュラーな
ものの一つは、BLATでこれはWIndows NTリソースキットから入手できますし、
以下のURLからも入手できます。
http://gepasi.dbs.aber.ac.uk/softw/Blat.html
BLATのコマンドライン構文は"sendmail"とは違うことに注意してください。
Micorsoftが移植したsendmailが以下のFTPサイトから入手可能です。
ftp://ftp.microsoft.com/developr/drg/unix-to-windows/ports/sendmail/
商用のsendmail製品がMetaInfo, Inc.,から以下の場所を通じて入手できます
ここでは評価バージョンをダウンロードできます。
別の商用 メイル製品wemail というものもあります。これはSeattle Labsによるslmailという製品の一部です。
外部プログラムを使わずにメイルを送信するperlスクリプトがRobin Chatterjeeの
Perl for Win32のページ(質問 3.4を参照)
で入手できます。
UNIXの'cron'はWin32環境にはありません。
Windows NT用に、ATと呼ばれるスケジューリングツールが使えます。
ATはテーブルファイルを使わずに、コマンドライン引数を取ります。
あなたのジョブを実行させるために、スケジュールサービスが実行されていなけ
ればならないことに注意してください。
もしコマンドラインバージョンのATが好みでなければ、
Windows NTリソースキットにあるGUIバージョンのWinATが使えます。
NTcrondというcronに似た商用のスケジューラーが#ifdef sofwareから
入手できます(http://www.ifdef.com/)。
Windows 95には、Microsoft Plus!にあるシステムエージェントがあります。
また、このほかにもLaunchPadやMetz Schedulerなど
幾つかのシェアウェアのスケジューリングユーティリティがあります。
これらのユーティリティはシェアウェア検索エンジン
(http://www.shareware.com/など)
で見つけることができます。
Win32環境用にほぼ同じようなものがあるのなら、Windows NTや Windows 95の
ヘルプファイルで探したいところでしょう。
もしそれがなくて、これまでの回答にもでてこなかったのなら、以下に挙げる
UNIX-on-Win32パッケージの一つを試してみてください。
Windows NTリソースキットにも幾つかのUNIXっぽいツールがありますし、
商用の UNIX-to-Win32パッケージも、Mortice Kerns Systems, Inc
(http://www.mks.com/)
によるMKS Toolkitを初めとして何種類かあります。
UNIX-on-NTの一般的な情報は UNIX to NT リソースセンター
(http://www.nentug.org/unix-to-nt/
を見てください。)(訳注:このリンクはもはや有効ではありません。) [他には? -ESP]
Windows NT上のサービスとは、バックグラウンドで動作する特殊な
実行プログラムのことです。サービスはネットワークプロトコルや
データベースサーバーのようなコンスタントに動作するプログラムのために
用いられます。Windows NT上のWWWサーバーのほとんどはサービスとして
実装されています。
サービスは幾つかの点で他のプログラムとは異なります。
忘れてはいけないことは、サービスからリソースが使えるようにするためには
特別な手順をとらねばならないということです。
一般的には、ファイルを Everyone groupで使えるようにする必要がありますし、
(PATHのような)環境変数をシステムの環境変数になるようにする必要があります。
[一部の読者から、"net start"コマンドを使うことによってコマンドラインから
サービスを実行できるという指摘があった。確かにその通りなんだけど、
これはコマンドラインから起動する他のプログラムとはかなり違っている。
このコマンドの使い方は "net start /?"として確認して欲しい。 -ESP]
Win32環境ではUNIXが行っているようなファイルに対するパーミッション設定
の機構と同じものはありません。FAT(Windows95のすべてのファイルシステム)
パーティションにあるファイルでは、そのファイルに対して陽にパーミッション
を設定する必要はありません。すべてのファイルはすべてのユーザーに対して
同じように扱えるものになっています。
Windows NTの NTFSパーティション上にある ファイルでは、そのファイルに対して
エクスプローラーやファイルのプロパティシートからセキュリティパーミッション
を設定することができます。エクスプローラーからファイルを右クリックして、
ドロップダウンメニューのプロパティを選択します。そしてセキュリティタブを
選択してから、そのファイルに設定するパーミッションのパーミッションボタンを
押下します。詳しくはHelpをクリックしてください。
CACLSというコマンドラインプログラムもファイルのパーミッションを変更します。
詳しくはコマンドラインで HELP CACLSとタイプしてください。
ウィンドウシステムでは、“関連付け”(association)とはある種類の
ファイルに対して使用すべきプログラムを特定する手順のことです。
ファイルはファイルタイプによって、JPEGファイルだとかPerlスクリプト
などに分類されます。このファイルタイプは、ファイルの拡張子
(ファイル名の一番最後にある"."から後ろの文字群)
によって判別されます。
これによって、例えば私たちがテキストファイルと呼ばれ".txt"という
拡張子の付いているファイルタイプのファイルをメモ帳によって扱うことが
できるのです。
一般的に、Perl for Win32プログラマーはファイルタイプを“Perl Script”
の用に作成し、それを“.pl”という拡張子に関連付けします。
私たちはファイルタイプに対応するものとして、perl.exeという
perlインタープリターを指定します。幾つかの Webサーバーはスクリプト
を実行する前に、そのスクリプトとperl.exeを結び付けることを要求します。
Windows 95や Windows NT 4.0では、以下のような手順を踏むことによって
新しいファイルの型作り出し、さらにそれをperlインタープリターと結び付
けることができます。
エクスプローラーのウィンドウからperlスクリプトをダブルクリックすること
によって関連付けを確認することができます。perl.exeが起動して、スクリプトを
実行すればちゃんとできています。
Windwos NT 4.0では、こういったややこしい手順を踏むことをしないでも良く、
コマンドラインで次のようにタイプするだけでOKです。
これらのコマンドに関するより詳しい情報は、コマンドプロンプトで
HELP FTYPEとタイプしてください。
この作業はcommand extensionsが許可されていなければならないことに
注意してください(これはデフォルトで許可されています。オフにしたのなら
あなたはそれを覚えていることでしょう)。
ホームページへ戻る。
4.2. Windows 95の一般的な情報をどこで入手できますか?
4.3. Win32用でshebang ("#!") 構文の替わりになるものは何ですか?
SET PATHEXT=.pl;%PATHEXT%
while ( <> )
{
print;
}
cat myfile.txt
cat < myfile.txt
cat myfile.txt | more
C:> pl2bat helloworld.pl
C:> helloworld
Hello, World!
4.4. Win32用でchmodの替わりになるものは何ですか?
4.5. Win32用でsendmailの替わりになるものは何ですか?
4.6. Win32プラットホームでジョブをスケジュールするには
どうしたらいいでしょうか?
4.7. UNIXツールのXが必要なのです。それはどこにありますか?
4.8. Windows NT サービスとは何ですか?
4.9. ファイルのパーミッションを設定するにはどうしたらいいでしょうか?
4.10. perlとPerlスクリプトを関連づけるにはどうしたらいいでしょうか?
ASSOC .pl=PerlScript
FTYPE PerlScript=[full path to perl]\perl.exe %1 %*
ご意見、ご要望は、
電子メールまたは
投稿にお願い致します。