スーパーバッチBSL / スーパーメニュBSLステーション

をご使用いただくにあたって Ver 1.02 (1999-11-20)

http://hp.vector.co.jp/authors/VA013722/

nishimura@tos-system.co.jp / ZXB05411(Nifty) 西村 真

[先頭へ]

 1.はじめに
 2.概要
 3.スーパーバッチBSL
 4.スーパーメニュBSLステーション
 5.付属ツール
 6.本システムの使用条件と複製・頒布・変更等について
 7.内容物について
 8.コンパイル
 9.現バージョンにおける制限・障害など

1.はじめに

 BSLは、32bit Windows 環境におけるベーシックなミドルウェアを目指しています。

  1.0 版の公開にあたり、使用条件を変更しました。従来版ではシェアウェアとしての製品公開を目指していましたが、方針を変更し、フリーソフトウェアとしました。ソースコードも添付されます。使用条件は、フリーソフトウェア財団の定める「GNU一般公有使用許諾書」(GPL)の規定とその精神にしたがうこととします。(詳細については、あとの記述を参照して下さい。)
  Windows 環境で、しかも開発言語は Delphi ですから、通常のGPLの概念には入らないでしょうし、その意味がどれだけあるかも分かりません。しかしこの形態がBSLにとってもっともふさわしいと思い、このようにしました。

  0.94 版から 1.0 版にかけて、一部言語仕様を変更しました。重大な障害を引き起こすような変更はしていないつもりですが、一部キーワードの変更があり、従来のスクリプトは変換が必要です。変換のためのBSLスクリプトが付属します。ただし、完全な変換を保証するものではありません。またやや微妙な変更もありますので、必ず改訂履歴を参照して下さい。互換性にかかわる変更内容について、詳しく記述しています。
 従来からご活用いただいていたユーザの皆様にはご迷惑をおかけし、まことに申し訳ありません。本バージョン以降は、互換性にかかわるような言語仕様の変更は極力行わないようにするつもりです。

 今回から、配布形態を自己解凍形式から単純な圧縮ファイル( .lzh )に変更しました。これは、自動インストール等の予期しない動作をしないことを明示するためです。

  1.0 版までに追加したい機能がもっともっとあったのですが、とりあえずこのあたりで公開します。今後の強化に、ご期待とご支援をお願いいたします。


2.概要

■本システムの構成
 本システムは、メニュシステム「BSLステーション」とバッチジョブスクリプトのインタープリタ「BSL」からなります。両者は密接に連動しますが、独立して使用することもできます。またその他いくつかのツール類が付属します。

■動作環境
 32bit Windows 環境で動作します。
 Windows95/98/NT4.0 で基本的な動作を確認しています。
 WindowsNT 3.5 / 3.51 での動作については未確認ですが、原則として新しいAPIは使用してませんので、基本的には動作するのではないかと思います。

■サポート等について
 本システムに関するサポートは、 NIFTY SERVE の会議室 nifty:FGALTS/MES/12 で行います。ご質問、ご意見などお待ちしています。電子メールでのお問合せもお受けしますが、できれば上記会議室の方へお願いしたいと思います。ただし、どちらの場合も必ずしも迅速な、また充分なサポートを保証するものではありませんのでご了解お願いいたします。
 また、最新の情報などについては以下のURLにて公開していく予定です。

http://hp.vector.co.jp/authors/VA013722/

 電子メールのあて先は以下のとおりです。

nishimura@tos-system.co.jp / ZXB05411(Nifty) 西村 真

■使用条件とお願い
 本システムはフリーソフトウェアです。営業用途を含め、使用にあたり著作権者に使用料金を支払う必要はありません。しかしながらできることなら、このソフトウェアの品質や機能の向上といった発展のために、ちょっとしたご協力をいただければとてもうれしいです。
 バグの報告や機能の改善提案、仕様拡張に関する提案、あるいはどのような用途で活用しているといった活用事例、さらにサンプルスクリプトの提供など、お寄せいただければたいへん役に立ちます。もちろん、単なる感想、あるいは文句などでも歓迎いたします。ぜひ上記の連絡先までお願いいたします。ご連絡をいただいた方には、バージョンアップのご案内などをお送りするつもりです。
 さらに、ソースプログラムレベルで開発に参加していただける方がいらっしゃれば、ますますうれしいです。
 また今後の開発を維持し、サポートを継続していくために、いささかの寄付も受け付けています。1サイト1000円程度の寄付をいただければ感謝いたします。(これは義務ではありません。)
 使用条件の詳細、複製・頒布・変更についてはあとに述べる規定にしたがって下さい。

 振込先: 富士銀行 築地支店 普通預金 2562735 (株)東新システム

※お振込時は、「振込人」欄にお名前等をご記入下さい。また別途メールにてご連絡をいただきますようお願い申し上げます。

■お礼
 本システムの作成にあたり、 nifty:FGALTS / nifty:FDELPHI の多くの方々にご教示いただきました。改めて感謝いたします。またメール等にてアドバイスをいただいたユーザのみな様にも感謝いたします。
 特に、 0.94 版公開後BSLをご評価いただき、言語仕様その他の面についてさまざまなアドバイスをいただきました TALHO さん(SGQ01344)には大変お世話になりました。 1.0 版の言語仕様面を詰める上で、参考にさせていただきました。またサンプルスクリプトも快くご提供いただきました。ありがとうございました。

 本システムの作成・管理・配布等に際し、以下のオンラインソフトウェアを活用させていただきました。感謝いたします。

FitzNOTE : by 國枝 武和(あしま、NCA03330)さん
UNLHA32.DLL : by Micco (GCH03345@nifty.ne.jp) さん
Lha32.Exe : by take (QZI12273) さん
秀丸エディタ : by 斉藤 秀夫(秀まるお、PEH00775@nifty.ne.jp) さん


3.スーパーバッチBSL

名称: スーパーバッチBSL
概要: バッチ処理の簡潔・完全な記述を実現する構造化言語
特徴: シンプルで強力な言語構造を備え、高度なバッチプログラムを簡単に作成できます。
動作環境: Windows95/98/NT4.0 などの32bit Windows 環境

紹介: 
■DOSのバッチファイル( .BAT )に似たシンプルな構文で、高度な記述を可能にします。if, case による選択実行、while, until などの繰返し実行、for によるファイルリストの処理、そしてサブルーチンを備えています。( .BAT の上位互換ではありません。独自の制御構造を備えています。)
■DOS, Windows のアプリケーションを起動し、終了を待ち、戻り値を取得することができます。また複数のアプリケーションを同時に起動し、並列処理を行うこともできます。時間指定の起動やシャットダウン処理も可能です。
■環境変数の他、独自の変数を備え、自在に活用できます。
■コンソールベースのユーザインタフェースを備えていますので、簡潔な対話処理が簡単に実現できます。
■豊富な組込み関数により、必要なシステム情報を取得したり、文字列操作を行うことができます。
■強力なファイル操作機能を備えており、複雑なファイル操作を簡単に実現できます。
■変数の領域やネスティングの深さなど、あらゆる仕様について実体的な制限がありません。
■コンソール形式の対話実行モードを備えていますので、豊富な機能を直接活用できます。
■約 130KB というコンパクトなファイルサイズで、インストールも実行も簡単明瞭です。
■詳細な仕様書が添付されていますので、安心です。
■連動する強力なメニュツール「BSLステーション」が付属します。
■プロフェッショナルな業務レベルでの使用を視野に入れたタフな設計です。特にコマンドラインツールのコントロールに最適です。
■フリーソフトウェアですので、ソースプログラムが添付されています。仕様の分析、機能の追加や変更が可能であり、サンプルソースプログラムとしても活用できます。詳細は使用規定をご確認下さい。(本製品は Delphi 5.0 で記述されています。)
※ 1.0 版では、 0.94 版から若干の仕様変更がなされています。ご注意下さい。


4.スーパーメニュBSLステーション

名称: スーパーメニュ「BSLステーション」
概要: バッチ処理言語BSLを内蔵した文字ベースのメニュ
特徴: テンキーとマウスの両方に対応し、メンテナンスも容易な無限階層メニュシステム。
動作環境: Windows95/98/NT4.0 などの32bit Windows 環境

紹介: 
■テキストベースの無限階層メニュツールです。
■マウスだけでなく、テンキーや矢印キーによる迅速な操作が可能です。
■ユーザモードと編集モードを備え、編集モードではメニュの変更が簡単に実行できます。
■連動するバッチ処理言語「BSL」が付属します。環境変数を活用したシステマチックなメニュシステムが構築できます。またメニュからエディタを自動起動してスクリプトを編集することができます。
■メニュ内容は、CSV形式のテキストファイルに保管されますので、テキストエディタ、 EXCEL や桐などの外部システムを使っても、簡単にメンテナンスできます。
■業務システムのメニュ構築に最適です。
■フリーソフトウェアですので、ソースプログラムが添付されています。仕様の分析、機能の追加や変更が可能であり、サンプルソースプログラムとしても活用できます。詳細は使用規定をご確認下さい。(本製品は Delphi 5.0 で記述されています。)


5.付属ツール

 本システムには、BSL/BSLステーションの他に、いくつかのツール類が付属します。

■ Shutdown
 電源断、ログオフなどを実現するコマンドラインツールです。BSLと連動して、電源断処理の自動化を行うことができます。使用方法は、コマンドラインから Shutdown /? で表示されます。
※BSLスクリプトから起動する場合は、 Shutdown.EXE の起動後すぐにスクリプトを終了し、 BSL.EXE じたいが終了するようにして下さい。BSLは Windows のシャットダウンメッセージを処理することができません。 Shutdown.EXE は、起動後デフォルトで2秒待ってから、実際の処理を開始するようになっています。
■ HardCopy
 スクリーンの印刷を実現するツールです。スクリーンの直接の印刷、およびクリップボードからの印刷が可能です。
■ RasCli
 リモートアクセスサーバ(RASサーバ)への接続処理を自動化するツールです。ソースプログラムのみの提供です。コンパイルには Aggressive.Co.Ltd. の Remote Access OCX が必要となります。使用方法は、コマンドラインから ShutDown /? で表示されます。


6.本システムの使用条件と複製・頒布・変更等について

 本システムは、フリーソフトウェアです。フリーソフトウェア財団( Free Software Foundation, Inc. 、以下FSFと表記)の定める「GNU一般公有使用許諾書」( GNU GENERAL PUBLIC LICENSE 、以下GPLと表記)の規定とその精神に従って公開されます。ただし、以下に定める点については、GPLに優先するものとします。

※FSF、GPLについては、以下のサイトを参照して下さい。

http://www.fsf.org/ Free Software Foundation ホームページ (English Page)
http://www.sra.co.jp/public/doc/ GNU 関連ドキュメント アーカイブ (SRA HomePage)
http://www.gnu.org/japan/ 日本語によるGNU情報サービス
http://www.gnu.org/japan/gpl-2e-plain.txt GNU General Public License
http://www.sra.co.jp/public/doc/gnu/gpl-2j.txt GNU一般公有使用許諾書

※GPLの日本語訳は GPL2J.TXT を参照して下さい。

■著作権
 本システムおよび仕様書その他の添付資料一式に関する著作権は、西村真/株式会社東新システムが所有しています。
 ただしサンプルとして付属するスクリプト( .BSL )については一切の著作権を主張しません。自由に利用・修正再利用していただいて結構です。
■使用条件
 営業用途を含め、本システムを自由に使用していただいて結構です。ただし反社会的な用途での使用は歓迎しません。また、寄付や情報提供、開発への参加を含め、本システムの発展のための協力は歓迎します。
■複製・頒布
 GPLの規定に従い、自由に複製・頒布できます。オリジナルのアーカイブファイルをそのまま頒布いただくのがもっとも自然な頒布形態です。オリジナルのアーカイブファイルに変更を加えた形で頒布される場合は、その旨と、オリジナルの入手場所を明記して下さい。また、ネットワークや書籍などの公共性の高いメディアによる再頒布にさいしては、できればメールでご連絡をいただきたいと思います。(事後でもかまいません。)再頒布にともなう責任は、再頒布を行った方に属するものとします。
 ただし、販売用途を含め、アプリケーションに組み込んで利用されるような場合は、オブジェクトコードのみの頒布をしていただいてもかまいません。この場合も、著作権と頒布規定の表示に関しては留意いただきたいと思います。
■変更・再頒布
 本システムには、ソースコードが添付されていますので、GPLの規定にしたがって自由に変更・再頒布することができますが、言語製品という性格上、似て非なる仕様を持つバージョンが公開されることは、ユーザの混乱を招く可能性が高いと思います。本システムに加えられる改良や機能拡張は、できるだけオリジナルバージョン(本システム自身)に反映させていきたいと思いますので、ご協力をお願いいたします。(そのような場合は、できればソースプログラムと改良内容などを作者あてご送付下さい。)
 本システムの仕様に変更を加えた上で、ネットワークなどの公共性の高い場所で公開される場合には、ユーザが混乱しないよう、充分分かりやすい形で頒布していただくようお願いいたします。変更点を明示した上、プログラム名を変更して下さい。またスクリプトファイルなどの拡張子も変更していただいた方がいいかもしれません。
■無保証
 作者は、本システムをサポートする意志はありますが、本システムを使用することによって生じたどのような損害にも責任を負いません。
■互換性
 原則として、スクリプトやメニュファイルの互換性にかかわるような変更は、バージョンアップ時にも行いません。ただし、影響が少なくかつどうしても必要だと判断した場合には、仕様が変更されることもあります。あらかじめご了承ください。


7.内容物について

 圧縮ファイルを解凍すると、以下のファイルが作成されます。

 \Text 仕様書等のテキストファイルが格納されています。
 README.txt 本説明書です。
 BSL.txt BSLの仕様書です。
 BSLSta.txt BSLステーションの仕様書です。
 BSLHist.txt 改訂履歴です。
 GPL.txt GPL(GNU一般公有使用許諾書)の和文文書です。

 \Html 仕様書等をHTML化したものが格納されています。
 Index.htm 下記HTMLファイルのインデクスページです。
 README.htm 本説明書です。
 BSL.htm BSLの仕様書です。
 BSLSta.htm BSLステーションの仕様書です。
 BSLHist.htm 改訂履歴です。

 Source\ ソースプログラム類が格納されています。

 BSL.exe スーパーバッチBSLの実行形式です。
 BSLSta.exe スーパーメニュBSLステーションの実行形式です。
 ShutDown.exe 電源断、ログオフなどを実現するコマンドラインツールです。
 HardCopy.exe スクリーンの印刷を実現するツールです。
 *.exe 上記以外に、いくつかのツール類が入っているかもしれません。

 Menu.BST サンプルメニュです。添付された各ドキュメントにアクセスできるようになっています。新規のメニュを作成するときは、このメニュの名前を変えるか、削除してください。
 94to10.BSL 旧版のスクリプトを変換するためのBSLスクリプトです。
 EditBSL.BSL エディタを立ち上げるためのBSLスクリプトです。ご愛用のエディタを起動するように修正して下さい。

 FindF.BSL 指定ディレクトリの中のファイルを検索します。
 DL.BSL ファイル削除を対話的に行う実用的なスクリプトです。
 Gomisute.BSL ディレクトリ中のバックアップファイルを ..\GOMIBAKO ディレクトリに移動します。
 Bkup.BSL ディレクトリごとの圧縮バックアップを実現します。 TALHO さん( SGQ01344 ) が NIFTY SERVE の会議室 nifty:FGALTS/MES/12 で公開して下さったものに 1.0 版対応として手を加えたものです。
 SDirBkup.BSL サブディレクトリごとの圧縮バックアップを実現します。 Bkup と同様、 TALHO さんの作です。
 DirBack.BSL タイムスタンプを比較しながら、ディレクトリをフルバックアップします。

 Shutdow.BSL シャットダウン処理のテスト用の簡単なスクリプトです。
 Test.BSL BSLのテスト用に私が使用しているスクリプトです。あまり面白くありません。
 TestSub.BSL Test.BSL から呼ばれるサブスクリプトです。

※以下は、私がBSLの開発・出荷用に使用しているスクリプトです。
 MakeText.BSL FitzNOTE で WZ 形式階層付テキストとして出力したBSLに関する文書を、出荷用に整形します。
 MakeHtml.BSL MakeText で作成されたテキストファイルから、HTMLファイルを生成します。
 MakeDocs.BSL MakeText / MakeHtml を使用して実際の文書作成を行います。
 MakeBSL.BSL 実際に出荷する圧縮ファイルを作成するためのスクリプトです。

 *.BSL 上記の他に、いくつかのサンプルスクリプトが入っているかも知れません。


8.コンパイル

 本システムは、インプライズ社の Delphi で開発されています。現在 Delphi 5 でコンパイルされていますが、直前まで Delphi 4 で開発していたものですので、 Delphi 4 でも問題なくコンパイル可能と思います。またたぶん Delphi 3 でもコンパイルできるものと思います。
 通常通りプロジェクトを開けば、コンパイル・実行が可能です。ただし、BSLとBSLステーションを切り替えてコンパイルするときには、最初に1回だけプロジェクトの再構築(プロジェクト(P)→再構築(B))を実行して下さい。これはコンソールモードとGUIモードをコンパイラ指令を使用した条件コンパイルで切り替えているため、再構築を行わないと .DCU がコンパイル済みとみなされてしまうためです。


9.現バージョンにおける制限・障害など

■特定の環境で、次の障害が発生しています。
 まれに、 Calc 文の演算が正しく行われないことがあります。
 次のようなスクリプトで、 Count に大きな値を与えると、 i が異常な値で終了することがあります。
 i = 1 ; while &i << &Count do Calc i + 1 endd ; Put &i
 この障害については、ハードウェア、OS、コンパイラ、コーディングのどれによるものなのか、あるいはどのような条件で発生するのか、つかめていません。一般的に、再現性はありません。通貨型において発生する問題のようです。

 この現象が発生することが現在確認されているのは次の環境のみです。
 AcerNote 350C / Cyrix 5x86 100MHz / Windows95 4.00.950

 また、つぎの環境ではこの現象は確認されていません。
 akia MicroBook / Pentium-MMX 233MHz / WindowsNT 4.00.1381 Service Pack 3
 Panasonic Let's note CF-A44 / Pentium-MMX 266MHz / Windows 98 4.10.1998

 その他の環境でも、現在までに障害は報告されていません。 AcerNote / Cyrix に関連した問題かもしれません。

■現バージョンでは、対話実行モードで入力された文は、無限に記憶されていきます。実害はないと思いますが、注意して下さい。