Index

WinBatchEh ヘルプ目次

はじめに

WinBatchEhの使い方

WinBatchEhの起動オプション

WinBatchEhのメニュー内容

[ファイル]メニュー

[スタート]

[ストップ]

WinBatchEhで動かすバッチコマンド

WinBatchEhのコマンド解説の読み方

WinBatchEhのコマンド一覧

WinBatchEhの仕様・使用上の注意

WinBatchEhについて

WinBatchEhをパワーアップするソフト

著作権・転載条件・連絡先

シェアウェアについて

WinBatchEh FAQ(良くある質問と回答集)


WinBatchEhの使い方

バッチファイルのオープン

WINBATCH.EXE/WINBAT32.EXE をパラメーターなしで起動するとバッチ内容表示ウィンドウが現れます。「ファイル」メニューの「オープン」でバッチファイルをオープンしてください。ファイルマネージャなどからドロップしても OK です。

オープン後は「スタート」でバッチがスタートします。「スタート」を行なうと項目が「ストップ」に変わりますので、動作中のバッチを止めたい場合は「ストップ」を押してください。ちなみにこのスイッチは左上のシステムメニュー(コントロールメニュー)内にもあります。

バッチファイルの拡張子は別に何でも構いませんが、BTW(BaTch file for Win)や、普通に BAT などが無難ではないかと思います。オープンメニューで最初にでてくるのもこの 2 つの拡張子のファイルです。

エディタの設定と起動

バッチファイルの変更は WinBatchEh では行なえませんので変更を行なう場合は「ファイル」メニューのエディタ起動または SHIFT+[Enter] でエディタを起動させて変更してください。

エディタ名は初期値は NOTEPAD.EXE になっていますので、変更する場合は「ファイル」の[設定]メニューを選択してください。エディタでファイルを更新した場合のバッチファイルの自動再読み込みの有無などの設定もこのメニュー内で行ないます。

バッチファイルを実行した後

バッチを実行中はバッチ実行ウィンドウ(DOS の画面みたいなものです)が現れます。普通のバッチを動かした場合はここにメッセージなどが表示される事になります。このバッチ実行ウィンドウが邪魔な場合は EXECUTEWND OFF で、表示が行なわれなくなります。(バッチの先頭で "@EXECUTEWND OFF" を実行すればウィンドウは全く表示されません)。

また、バッチ内容表示ウィンドウは現在実行中のバッチの行にあわせてスクロールが行なわれ、どの行が実行されているか確認を行なうことができます。このウィンドウも邪魔な場合は BATCHWND OFF でアイコン状態になります。始めからアイコンにしておくのならプログラムマネージャなどの登録もアイコン状態で起動するように設定しておいてください。

WINBATCH.EXE/WINBAT32.EXEからバッチを直接起動

WINBATCH.EXE/WINBAT32.EXE をプログラムマネージャなどに登録し、さらにパラメータとしてバッチファイル名を指定すれば、そのバッチファイルの実行がすぐに始まり、バッチファイルが終われば、WinBatchEh も終了します。

「オープン」メニューからバッチを読み込んで「スタート」した場合はバッチ終了時にメッセージが表示されキー入力待ちとなりますが、パラメーターを付けてバッチを直接実行した場合、このメッセージも出なくなります。


WinBatchEhの起動オプション

バッチを直接起動

WINBATCH.EXE/WINBAT32.EXE をプログラムマネージャなどに登録し、さらにパラメータとしてバッチファイル名を指定すれば、そのバッチファイルの実行がすぐに始まり、バッチファイルが終われば、WinBatchEh も終了します。

例

WINBATCH.EXE FILENAME.BAT 引数1 引数2 ...

WINBAT32.EXE FILENAME.BAT 引数1 引数2 ...


WinBatchEhの仕様・使用上の注意

WinBatchEhの仕様

扱えるバッチファイル

扱えるバッチファイルは、ファイルの大きさは関係ありませんが、最大 8192 行です。また、1 行の最大文字数は 512 文字です。

扱えるファイル名

16ビットバージョンでは長いファイル名はサポートしていませんが、32ビットバージョンでは長いファイル名も扱えます(空白を含むファイル名も " " で囲う事により指定できます)。

環境変数の領域

環境変数の領域は16ビットバージョンでは自前の領域を用意し、容量的には約 64KB 程度使用できます。32ビットバージョンではシステムで用意された領域を使用し、容量的には約 16KB 程度は使用できるかと思います。

また、1 つの環境変数の長さは変数名と文字列を合わせて 500 文字程度まで使用できます。

16ビットバージョンでは子プロセスとして起動した実行ファイルへの環境変数の受け渡しは行なわれません(WinBatchEhを起動したときの環境変数が渡されます)。32ビットバージョンでは現在実行中のバッチの環境変数の内容が引き継がれます。

バッチ上で起動する実行ファイルについて

DOS 用のソフトについては実行できるものとできないものがあります。(実行できなくても終了を待つ場合がありますので、その場合「ストップ」で終わらせてください)。

また、Windows 用ソフトでも、一度しか起動しないアプリケーションをすでに起動している状態で、さらに EXEC や実行ファイルのみで起動させると、バッチに戻ってこないことやすぐにバッチに戻ってくる場合があります。

実行ファイル名にパス名を含めない場合はカレント, WINDOWS, Windowsの SYSTEM, WinBatchEh 起動時に設定されていた環境変数 PATH のディレクトリ(16ビットバージョンでは WinBatchEh 内で設定した PATH は参照しません)を検索に行きます。

実行ファイル名にバッチファイルを与えると、WinBatchEh が現在処理しているバッチを終了して、そのバッチファイルに制御を移します。なお、CALL 文を使用すれば、元のバッチに戻ってきます。

EXEC や実行ファイルのみでプログラムを起動している間は、ハードウェアによっては、省電力モードに移行するパワーマネージメント機能などが使用できない場合があります。

パラメーター・環境変数の引継

WinBatchEn を終了せずに続けて同じバッチの「スタート」を行なうと、環境変数の設定が前の状態のままとなります。また SHIFT コマンドを使用した場合も移動した結果がそのまま継続されます。

WinBatchEn から他のバッチを「オープン」メニューでオープンした場合及びバッチ内でバッチを起動した場合、環境変数の設定は以前の実行結果のままになっています。

また、バッチへのパラメーターは、「ファイル」メニューの「オープン」を行なった場合、及びエディタなどを起動してバッチの再読み込みを行なった場合、%0 以外はすべて消去されます(%0 にはバッチ名が入っています)。

バッチ内でバッチを起動した場合及び CALL で呼び出した場合はそのバッチへのパラメーターが設定されます。なお、CALL の場合は元のバッチに戻ったときに以前のパラメーターに戻ります。

文字列・定義文字列・数値・環境変数の指定について

コマンドによっては文字列をパラメータに必要とするものがありますが、通常は ["](ダブルクォーテーション)で囲いますが、文字列内で ["] を使用したい場合は、['](シングルクォーテーション)で囲うこともできます。

数値の指定と定義文字列の両方が書かれているものについては、できるだけ定義文字列の方を使用してください。数値は今後のバージョンで変更が行なわれる可能性があります。

数値や定義文字列を '+' や '-' で計算を行なうときは、間にスペースなどを入れないでください。

数値の指定では先頭を '0x' で始めると16進数の指定、それ以外の場合は10進数の指定となります。(数値の指定方法)

また数値指定で1文字のキャラクターを指定することもできます。キャラクターを指定する場合はシングルクォーテーション ['] で文字を囲ってください(例: 'A')。

環境変数の指定の部分で "=" のみを指定するとバッチ実行ウィンドウに出力することができます。これを利用して SPRINTF などの引数に、コマンドの実行出力を代入することが可能になります。

その他16ビットと32ビットバージョンの違い

Windows の GUI 自身の違いにより、16 ビットと 32 ビットバージョンで、表示される内容(表現)に違いが起きる場合があります。

ツールバーは 32 ビットバージョンでのみサポートしています (ツールバーは Windows95 または Windows NT 3.51 以降で動作しているときのみ表示されます)。


システムメニュー(またはコントロールメニュー)

左上の隅っこを押したときに表れるメニューです。


[設定]メニュー

WinBatchEhの「設定」について

エディタ名:

「エディタ起動」(または[SHIFT]+Enter)で起動を行なうエディタを設定します。初期値は NOTEPAD.EXE になっています。

エディタの設定には以下のマクロを指定できます。

$f	ファイル名

$l	行番号('123'のように先頭の0を除いた形式)

$n	行番号('00123'のように5桁の形式)

$$	'$'自身

マクロ指定がない場合はエディタの実行ファイルに現在のバッチファイルを自動的に渡しますが、マクロ指定を使用している場合にはファイル名は自動的に渡しませんので、マクロ指定を1つでも使用する場合は $f のファイル名指定も必ずパラメータに含めてください。

行番号の数値は、現在バッチ内容表示ウィンドウで表示されている先頭の行番号です。当然ながらエディタ側で行番号のパラメータをサポートしている必要があります(NOTEPAD.EXEではサポートされていません)。

指定例:  C:\HIDEMARU\HIDEMARU.EXE /J$n $f

□ 更新ファイルは確認なしで再読み込み

このチェックボタンをONにしておくと、エディタで変更を行なった後のバッチの再読み込みを行なうかどうかの確認なしで、自動的に再読み込みが行なわれます。通常はONの状態で使ってください。

□ バッチ内容表示ウィンドウの大きさの保存

このチェックボタンをONにしておくと、バッチ内容表示ウィンドウの大きさを、終了時に保存を行ない、次回の起動時にも同じ大きさで表示されるようになります。

□ バッチファイルを1行単位で処理

通常はバッチファイルをオープンしたときにすべてをメモリに読み込んで実行を行ないます。このチェックをONにしておくと、バッチファイルの読み込みを実行する行ごとに1行単位で読み込みを行ないますので、バッチの動作は遅くなりますが、バッチファイルを読み込むバッファの分メモリを節約できます。

フォントの設定

「バッチ内容表示ウィンドウ」または「バッチ実行ウィンドウ」のフォントを設定します。フォントは固定幅のフォントのみを選択できます。


[ファイル]メニュー

[ファイル]メニューには、バッチファイルを開いたり、エディターの起動及び設定、送金後の登録を行なうコマンドがあります。

[オープン]

バッチファイルのオープンを行ないます。拡張子はデフォルトでは .BTW または .BAT のものが選択できます。バッチファイルをオープンすると読み込みが行なわれて、バッチ内容表示ウィンドウに内容が表示されます。

ファイルのオープンは初期画面でキーボードの O キーを押すことでも行なえます。

[エディター起動]

エディターの起動を行ないます。バッチファイルがオープンされていればそのファイル名をエディターに渡して起動が行なわれます。

エディターの起動は初期画面でキーボードの SHIFT+リターン を押すことでも行なえます。

[設定]

エディタ名の設定などを行ないます。([設定]メニューの詳細)

[コマンド直接実行]

コマンドを入力して直接実行を行なうことができます。これによりWinBatchEhのコマンドのテストなどを行なうことができます。(コマンド直接実行の使い方)

コマンドの直接実行は初期画面でキーボードの C キーを押すことでも行なえます。

[登録]

送金登録を行なった後、使用するユーザー名または会社名などと、作者よりお知らせしたID番号を入力できます。

一度登録を行なうと、このコマンドはメニューには表れなくなります。

参考

シェアウェアについて


[スタート]

バッチファイルの実行を始めます。実行が始まると[スタート]のコマンドは[ストップ]に変化します。

なお、[スタート]コマンドは一番左上のシステムメニュー(コントロールメニュー)内にも用意されていますので、アイコン状態にしている場合などは、こちら側でコマンドを実行してください。

また、キーボードの S キーを押しても[スタート]することができます。


[ストップ]

実行中のバッチファイルの動作を強制的に中止します。一旦[ストップ]を行なうとバッチの途中から始めるようなことはできませんのでご注意ください。

実行を[ストップ]で中止すると、[ストップ]のコマンドは[スタート]に変化します。

なお、[ストップ]コマンドは一番左上のシステムメニュー(コントロールメニュー)内にも用意されていますので、アイコン状態にしている場合などは、こちら側でコマンドを実行してください。


コマンド直接実行の使い方

コマンド直接実行ウィンドウの使い方

コマンド直接実行ウィンドウでは、コマンドラインの入力を行なって、そのコマンドの実行結果を確認することができます。

コマンドの実行を行なうと、バッチファイルを実行しているときと同じようにバッチ実行ウィンドウが現れ結果などが表示されます。

実行内容の入力

実行を行なうコマンド及びパラメーターをバッチファイル内と同じように指定します。一番始めにコマンド直接実行ウィンドウを開いたときには、クリックボードの内容が転送されています。

実行を行なった内容は64項目までヒストリーとして記憶されています。

現在のERRORLEVELの値

実行を行なう前のERRORLEVELの値の設定を行ないます。また実行を行なった結果のERRORLEVELもこの部分に表示されます。

実行内容をクリップボードに転送

このチェックボックスをONにしておくと、実行を行なったコマンドラインの内容をクリップボードに転送します。エディターに実行した内容を貼り付けを行なう場合に便利かと思います。


システムメニュー(またはコントロールメニュー)

アイコン状態にしていても次のようにメニューが表れます。


システムメニュー(またはコントロールメニュー)

アイコン状態にしていても次のようにメニューが表れます。


WinBatchEhのコマンド表記

コマンドの説明の表記方法

WinBatchEhではコマンドをいくつかの分野に分割しています。分割は次のような形で行なっています。

WinBatchEhで使えるコマンド基本篇

DOSのバッチコマンドと同じ形式のコマンドです。

WinBatchEhで使えるCOMMAND.COM内部コマンド篇

COMMAND.COMの内部コマンドと同じ形式のコマンドです。

WinBatchEhで使えるコマンド拡張篇

バッチコマンドの拡張及び追加を行なったコマンド、それにDOS上での外部コマンドです。

WinBatchEhで使えるコマンド必殺技篇

Windows用に特別な処理を行なえるようになったコマンドです。

このヘルプでのWinBatchEhのコマンドの解説は次のような形で行なっています。

一番上のタイトル

コマンド名

[]

省略可能なパラメーターです。

戻り値

コマンドが終了した後のERRORLEVELです。

例

使用例を紹介します。

参照

そのコマンドと関連するコマンドの参照を行なえます。


WinBatchEhのコマンド一覧

基本コマンド

@	ECHO ON の状態でもコマンド行の表示を行ないません。

%数値, %環境変数%, %%	パラメーターの指定や環境変数の内容を参照します。

REM [文字列]	その行を実行を行なわないコメント行にします。

ECHO 文字列, ON/OFF	文字列出力、実行中の行のエコーの有無を指定します。

PAUSE [コメント文字列]	メッセージを表示し、何かキーが押されるまで待ちます。

SET 変数名=文字列	環境変数への代入を行ないます。

IF(バッチコマンド互換)	条件の判定を行なって続く文を実行します。

GOTO LABEL	LABELの行にジャンプします。

FOR(バッチコマンド互換)	繰り返し実行を行ないます。

SHIFT	バッチのパラメーターを左にシフトします。

EXIT	バッチファイルから抜けます。

実行ファイル名	ファイルを実行します。

CALL バッチファイル名	バッチファイルを呼び出します。

COMMAND.COM内部コマンド

CLS	バッチ実行ウィンドウの内容を消去します。

DIR	ディレクトリの内容を表示します。

DRIVE:	カレントドライブを変更します。

CHDIR, CD	カレントディレクトリの変更または表示を行ないます。

MKDIR, MD	ディレクトリの作成を行ないます。

RMDIR, RD	ディレクトリの削除を行ないます。

COPY	ファイルのコピーを行ないます。

REN, RENAME	ファイル名の変更を行ないます。

DEL, ERASE	ファイルの削除を行ないます。

TYPE	テキストファイルの内容表示を行ないます。

リダイレクト出力	表示する代わりにファイルに出力を行ないます。

拡張コマンド

GETVERSION	WinBatchEhのバージョンを取得します。

BATCHWND, BATWND	バッチ内容表示画面の表示の制御を行ないます。

EXECUTEWND, EXECWND	バッチ実行画面の表示の制御を行ないます。

ERRORLEVEL(参照,設定)	ERRORLEVELを文字列として参照、また設定ができます。

GOSUB LABEL ～ RETURN	サブルーチンを呼び出します。

構造化 IF ～ ENDIF	構造化の行なえるIFです。

WHILE ～ ENDWHILE	条件の判定を行なって、繰り返し実行を行ないます。

構造化 FOR ～ ENDFOR	構造化の行なえるFORです。

EXEC 実行ファイル名	実行ファイルを状態を指定して起動します。

START 実行ファイル名	実行ファイルを状態を指定してマルチに起動します。

MORE	テキストファイルの表示をページ制御ありで行ないます。

GETKEYSTATE	指定のキーが押されているかどうかを調べます。

CHOICE	選択肢の中のキーが入力されるのを待ちます。

LET	環境変数に計算結果を代入します。

PRINTF	書式に従って表示を行ないます。

SPRINTF	書式に従って環境変数に代入を行ないます。

GETCURRENT	カレントドライブ名やディレクトリ名, WINBATCH.EXEのパスを取得します。

GETCLOCK	現在の日付や時刻を取得します。

STRTOKFILE	与えられた文字列からファイル名などを抜き出します。

FILELINE	ファイルの行数を返します。

LINPUTFILE	指定のファイルの特定の行を抜き出します。

TIMESTAMP	ファイルのタイムスタンプの比較、取得を行ないます。

FILESIZE	ファイルのサイズの比較、取得を行ないます。

CDD	ドライブとディレクトリを移動します。

PUSHD/POPD	ドライブとディレクトリを移動/復帰します。

WHICH	実行ファイルの存在を確認します。

TEMPFILENAME	一時ファイル名を取得します。

SLEEPTIME	指定した時間、動作を止めます。

ON ...	メニューなどを選んだ場合に特別な処理を行ないます。

STR ...	文字列操作を行ないます。

DRV ...	ドライブ情報の取得を行ないます。

FINDWND ...	ウィンドウの検索を行ないます。

Windows用必殺コマンド

GETCURSORPOS	マウスカーソルの現在位置を取得します。

SETCURSORPOS	マウスカーソルの位置を設定します。

CLIPCURSOR	マウスカーソルの移動可能な範囲を設定します。

GETFOCUS	現在フォーカスが設定されたウィンドウを取得します。

SETFOCUS	指定のウィンドウにフォーカスを設定します。

SHOWWINDOW	指定のウィンドウの状態を変更します。

GETWINDOWRECT	指定のウィンドウの位置及びサイズを取得します。

SETWINDOWRECT	指定のウィンドウの位置及びサイズを設定します。

SETWINDOWPOS	指定のウィンドウの配列順序、位置とサイズ、調整フラグを設定します。

MESSAGEBOX, MSGBOX	メッセージボックスの表示を行ないます。

MESSAGEBEEP, MSGBEEP	サウンドを再生します。

NONSTOPMESSAGE, NONSTOPMSG	バッチの処理を続けたままメッセージを表示します。

DISPLAYTXT	テキストファイル(TXT)を表示後、応答を待ちます。

DISPLAYBMP	ビットマップファイル(BMP)の表示を行ないます。

SNDPLAYSOUND	WAVファイルまたはWIN.INIのentryのサウンドを再生します。

INPUTSTRING	文字列入力を行ないます。

SELECTSTRING	リストボックスから文字列の選択を行ないます。

CHOICEBUTTON	ボタンの中から選択を行なって選んだボタンの値を返します。

GETOPENFILENAME	ファイル名の選択(または入力)を行ないます。

DROPFILEWAIT	ファイルがドロップされるのを待ちます。

CHOOSECOLOR	色の選択を行なって環境変数に代入します。

EXITWINDOWS	Windowsを終了します。

RESTARTWINDOWS	Windowsを再起動します。

REBOOTSYSTEM	Windowsを終了しシステム(マシン)を再起動します。

EXITWINDOWSEXEC	Windowsを一旦終了し、DOSの実行ファイルを実行します。

GETINISTRING	INIファイルの文字列を取得します。

WRITEINISTRING, SETINISTRING	INIファイルに文字列を設定します。

GETREGSTRING	レジストリデータを取得します。

SETREGSTRING	レジストリデータを設定します。

SYSTEMPARAMETERSINFO, SYSPARAMINFO	システムレベルのパラメータの取得または設定を行ないます。

GETCLIPBOARD	クリップボードから文字列を受け取ります。

SETCLIPBOARD	クリップボードに文字列を設定(送出)します。

POSTMESSAGE	アプリケーションにメッセージを送ってすぐに戻ります。

SENDMESSAGE	アプリケーションにメッセージを送って応答を待ちます。

SENDMENUKEY	アプリケーションのメニューを選択します。

SENDKEY	キーコードを直接送ります。

DDEEXECUTE	DDEサーバーにコマンドを実行させます。


@
@[コマンド]

ECHO ON の状態でもコマンド行の表示を行ないません。

戻り値

ありません。

例

@ECHO OFF

@START CALC.EXE

参考

ECHO


%数値, %環境変数%, %%

バッチファイル名の参照やパラメーターの指定の参照、環境変数の内容の参照、%自身の指定を行ないます。

%0

バッチファイル名を参照します。

戻り値

ありません。

例

ECHO %0の実行を開始します

%1～%9

それぞれバッチファイルへのパラメーター(%1が1番目)を参照します。

戻り値

ありません。

例

MD %1

%NAME%

環境変数の内容の参照を行ないます。

%WINDIR% で Windows のディレクトリの参照も行なえます。

また %ERRORLEVEL% で ERRORLEVEL を文字列として参照することもできます。

戻り値

ありません。

例

ECHO TEMPの設定は%TEMP%になっています

参考

SET

IF

ERRORLEVEL(設定,参照)

%%

%自身を表します。

戻り値

ありません。

例

ECHO 100%%


REM
REM [文字列]

その行がコメントとして扱われ実行が行なわれません。但しリダイレクトは有効になります。

戻り値

ありません。

例

REM Version 1.0


ECHO
ECHO 文字列, ON/OFF

文字列出力、実行時のバッチの現在行のエコーの有り、無しを指定します。

ECHO [/N] 文字列

文字列を出力します。/Nを文字列の前に指定すると文字列出力後の改行を行ないません。

戻り値

ありません。

例

ECHO 実行を開始します

参考

PRINTF

ECHO ON

これ以降の実行中の行のエコー(表示)を行ないます。

初期状態では ECHO ON の状態になっています。

戻り値

ありません。

例

ECHO ON

ECHO OFF

これ以降の実行中の行のエコー(表示)を行ないません。

戻り値

ありません。

例

ECHO OFF


PAUSE
PAUSE [コメント文字列]

メッセージを表示し、何かキーが押されるかマウスの左ボタンが押されるまで待ちます。

[ESC]を押すと中断します(CTRL-Cではありません)。

なお、"EXECUTEWND OFF" 状態ではメッセージの表示も行ないませんし、キー入力も待ちません。その場合は MESSAGEBOX を使用してください。

コメント文字列はコメントを入れるときに使用しますが、"ECHO OFF" の状態では表示されませんし、あまり意味がありません。

戻り値

ありません。

例

PAUSE

参考

GETKEYSTATE

CHOICE

MESSAGEBOX, MSGBOX


SET
SET 環境変数名=[代入文字列]

環境変数への代入と削除を行ないます。

設定を行なった環境変数は子プロセスには渡されませんし、PATH の設定を行なっても実際のサーチパスには反映されませんのでご注意願います。あくまでバッチ内での変数の利用と言う形で使用してください。(CALL文及びバッチファイル名を指定してWinBatchEh内でバッチを起動した場合は次のバッチに変更内容が受け継がれます)。

注意

環境変数と=の間の空白は意味を持ちます。

"SET NAME=1" と "SET NAME = 1" では結果が異なります(それぞれ "NAME=1", "NAME = 1" という形での保存になります)。

SET NAME=VAL

環境変数への代入を行ないます。

戻り値

ありません。

例

SET FILENAME=A:\FILENAME.TMP

SET NAME=

環境変数を削除します。

戻り値

ありません。

例

SET FILENAME=

参考

%環境変数%

LET

SPRINTF


IF (バッチコマンド互換)

条件の判定を行なって続く文を実行します。DOS のバッチコマンド互換の IF です。WinBatchEhでは構造化IFも使用できます。

IF のコマンド一覧

IF ERRORLEVEL	ERRORLEVEL の値を検査します。

IF EXIST	ファイルの存在を検査します。

IF EXISTWINDOW	ウィンドウタイトルの存在を検査します。

IF 文字列==文字列	文字列を比較します。

IF WINBATCH==YES	WinBatchEh中で実行中かどうかを判断します。

IF CMPI(またはICMP)	続く文字列の比較を英大小文字の区別なしにします。

IF NOT	続く条件文の判定を逆にします。

IF ERRORLEVEL 数値 ～

ERRORLEVEL が数値以上なら続く文を実行します。

但し通常の Windows のアプリケーションは ERRORLEVEL を返しませんので、通常の Windows ソフトを実行した後の ERRORLEVEL を調べても正常に起動できたかどうかの判断しか行なえません。

また DOSアプリの終了後の ERRORLEVELも、COMMAND.COM経由の起動となる事もあって、判断する事ができません。

WinBatchEh では "IF %ERRORLEVEL%==1" のようにして、ERRORLEVELと等しい場合、という判断も可能です。

戻り値

ありません。

例

IF ERRORLEVEL 1 PAUSE

参考

ERRORLEVEL(設定,参照)

IF EXIST ファイル名 ～

ファイルが存在すれば続く文を実行します。

ファイル名の最後に \ を指定すると、ディレクトリの存在の確認になります。\DIRNAME\NUL という裏技的な方法では確認できない、UNC方式(\\SERVER\SHARE\DIRNAME\)の記述でもディレクトリの存在を確認できます。

戻り値

ありません。

例

IF EXIST DUMMY.$$$ GOTO END

IF NOT EXIST \\SERVER\DATA\FOLDER\ MD \\SERVER\DATA\FOLDER

IF EXISTWINDOW "ウィンドウタイトル" ～

IF EXISTWINDOWR "ウィンドウタイトル" ～

WinBatchEhで追加された判定です。指定されたウィンドウタイトルが存在すれば続く文を実行します。ウィンドウタイトルは英大小文字や空白の数も正確に比較する必要があります。(CMPIは使用できません)。

EXISTWINDOWは指定されたウィンドウタイトルを前方一致または後方一致で検索して存在すれば続く文を実行します。タイトルの英大小文字と半角全角カタカナは同一視されます(タイトル検索の仕様)。

EXISTWINDOWRは指定されたウィンドウタイトルを正確なすべての文字列で検索して存在すれば続く文を実行します。英大小文字や半角全角カタカナも区別されます。例えばウィンドウタイトルに開いているファイル名が含まれる場合それも記述する必要があります。

もし、ウィンドウタイトルではなく、クラス名がわかっている場合"@クラス名" とすればクラス名に対する処理が行なえます。クラス名を指定する場合も英大小文字も比較されますし、この場合前方一致とはなりません。

ハンドル番号が分かっている場合、"$ハンドル番号" とすれば指定のハンドル番号を持つウィンドウに対する処理が行なえます。ハンドル番号は16進数で指定します。

戻り値

ありません。

例

IF EXISTWINDOW "ペイント" GOTO BRUSH

IF EXISTWINDOW "- (無題)" GOTO BRUSH

IF EXISTWINDOWR "ペイントブラシ - (無題)" GOTO BRUSH

参考

FINDWND

IF 文字列==文字列 ～

文字列が等しければ続く文を実行します。

"=="の前後の空白は意味を持ちますので特に意味がなければ空白を空けずに記述してください。

戻り値

ありません。

例

IF "%TEMP%"=="A:\" SET TEMP=G:\

IF WINBATCH==YES ～

IF WINBAT32==YES ～ (32ビットバージョンのみ)

WinBatchEhで追加された比較文です。WinBatchEhで実行中なら続く文を実行します。DOS上では判定が偽になりますので続く文が実行されません。同じバッチをDOS上とWinBatchEh上で使い分けるときに使用してください。

"WINBATCH" は16/32ビットの両方で判定が真になります。"WINBAT32" は32ビットバージョンのみで判定が真になります。

戻り値

ありません。

例

IF WINBATCH==YES ECHO WinBatchEhで実行中です

IF WINBAT32==YES ECHO WinBatchEh 32ビットバージョンで実行中です

IF CMPI ～

IF ICMP ～

WinBatchEhで追加されたコマンドです。続く文字列の比較を大小の英文字(Aとaなど)を区別せずに行ないます。

戻り値

ありません。

例

IF CMPI "%TEMP%"=="C:\" SET TEMP=G:\

IF NOT CMPI "%TEMP%"=="G:\" SET TEMP=G:\

IF NOT ～

上記の判定を逆にします。条件判定が正しくないときに続く文が実行されます。

戻り値

ありません。

例

IF NOT "%TEMP%"=="G:\" SET TEMP=G:\

参考

IF(構造化)


GOTO
GOTO LABEL

LABELの行にジャンプします。ラベル行は先頭に“:”(コロン)を付けて“:LABEL”のように記述します。なお、大きなバッチファイルの終わりの方の行にはたどり着くのに時間が必要になります。

ラベル名はWinBatchEhでは500文字位まで使えますが、DOSのバッチファイルでは最大8文字までの認識となっていますし、それ位で使った方が動作も遅くならなくて良いかと思います。ラベル名は大文字小文字が区別されません。

ラベルをREMの代わりにコメント行として使用するのはWinBatchEhでも有効な手段です。REMと違いリダイレクト処理が行なわれませんし、REMよりコメント行としての処理が若干速くなります。

":_DEFAULT_"というラベルが実行中のバッチファイルに存在する場合は、GOTOでのラベルが見つからない場合にエラーにならずに、このラベルの行にジャンプを行ないます。

戻り値

ありません。

例

GOTO END

:

:END

参考

GOSUB


FOR(バッチコマンド互換)
FOR 変数 IN (...) DO 実行コマンド(バッチコマンド互換)

繰り返し実行を行ないます。DOS のバッチコマンド互換の FOR です。

変数には %%A や %%Z といった文字列を使用し、これらの変数を実行コマンド内で指定することにより、(...)の内容と置き換えられて実行が行なわれます。

(...)には文字列及びワイルドカード(*,?)を使用したファイル名、ワイルドカードの最後に\を指定してディレクトリ名、先頭に@マークを指定してファイル内の行の読み込みが使用できます。複数のパラメーターを指定するときにはスペースかカンマ(,)で区切ります。

  1. 文字列の指定

     例: FOR %%A IN (ABC DEF GHI) DO ...

         (%%A には ABC, DEF, GHI が順に格納される)

  2. ワイルドカードの指定(通常ファイル)

     例: FOR %%A IN (*.TXT *.DOC) DO ...

         (%%A には 拡張子が TXT, DOC の通常ファイルが検索されて格納される)

  3. ワイルドカードの指定(ディレクトリ)

     例: FOR %%A IN (C:\WINDOWS\*.*\) DO ...

         (%%A には C:\WINDOWS 内のディレクトリが検索されて格納される)

  4. ファイル内の行を順に読み込み

     例: FOR %%A IN (@FILENAME.LST) DO ...

         (%%A には FILENAME.LST ファイル内の行が順に読み込まれて格納される)

3及び4は、WinBatchEhで拡張された指定方法です。1～4の指定は括弧内で自由に組み合わせて使用することができます。

FOR文内でFOR文を使用する(入れ子にする)ことはできません。

戻り値

ありません。

例

FOR %%A IN (1 2 3 4 5) DO COPY FILENAME.%%A B:

FOR %%A IN (BatchList *.BAT) DO ECHO %%A

FOR %%A IN (C:\USR\*.*\ D:\LIB\*.* DO RMDIR %%A

FOR %%A IN (@C:\TMP\FILELIST.TXT) DO MORE %%A

参考

FOR(構造化)


SHIFT

バッチのパラメーターを左にシフトします。つまり%0に%1の内容が、%1には%2の内容というように、順に小さな番号に移動します。%0の内容は削除されます。

戻り値

ありません。

例

SHIFT

参考

%数値


EXIT

バッチファイルから抜けます。

戻り値

ありません。

例

EXIT


ファイルを実行
実行ファイル名

ファイルを実行します。必ず拡張子も指定してください。

実行できるのは実行ファイルのみですので気を付けてください。COMMAND.COMの内部コマンドについては「WinBatchEhで使えるCOMMAND.COM内部コマンド篇」のもののみ使用可能です。

起動された実行ファイルが終了するまでバッチは停止します。

DOS用の実行ファイルは動作するかも知れませんが正式なサポートとは致しません。またDOS用の実行ファイル終了後のERRORLEVELはCOMMAND.COM経由で起動している事もあって取得する事ができません。

Windowsアプリケーションによっては実行ファイル名だけでは起動ができない事がありますので、その場合EXECで実行状態を指定して起動させてください。

バッチファイル名を指定した場合は現在WinBatchEhが実行中のバッチが終了して、そのバッチに実行が切り替わります。

バッチファイルはPATH内の検索は行なわれません。カレントディレクトリ以外のバッチファイルを起動する場合はフルパスで指定してください。

関連付けが行なわれているファイルを直接指定することも可能です。例えば WINBATCH.TXT を起動すると、TXT ファイルに NOTEPAD.EXE が関連付けされていれば、NOTEPADのパラメーターに WINBATCH.TXT を渡して起動が行なわれます。

32ビットバージョンで、Win32アプリケーションを起動させた場合、終了時のアプリケーションのリターンコードが環境変数 "_RETURNCODE_" に設定されます。

戻り値

  0 ～  31	プログラムが実行できない

 32 ～	正常実行

例

CALC.EXE

MAIN.BTW

WINBATCH.TXT

参考

CALL (バッチファイルの呼び出し)

EXEC (実行ファイルを起動)

START (実行ファイルをバックグランドで起動)


CALL
CALL バッチファイル名 [バッチへのパラメーター]

バッチファイルを呼び出します。必ず拡張子も指定してください。

バッチファイルはPATH内の検索は行なわれません。カレントディレクトリ以外のバッチファイルを呼び出す場合はフルパスで指定してください。

呼び出したバッチが終了すると、元のバッチの次の行に制御が戻ります。

戻り値

呼び出したバッチで最後に設定されたERRORLEVELの値

例

CALL SUB.BTW

CALL SUB.BTW 1 2 3 4 5

参考

ファイルを実行 (バッチファイルの切換)


CLS

バッチ実行ウィンドウの内容を消去します。

戻り値

ありません。

例

CLS


DIR
DIR [ﾄﾞﾗｲﾌﾞ:][ﾊﾟｽ][ﾌｧｲﾙ名] [/P] [/W] [/B] [/L] [/S] [/An]

ディレクトリの内容を表示します。

以下のオプションが指定できます(オプション及びファイル名とオプションの間はスペースを空けてください)。

[ﾄﾞﾗｲﾌﾞ:][ﾊﾟｽ][ﾌｧｲﾙ名]        一覧表示させるドライブ・ディレクトリ・ファイルを指定します。

/P      一画面ごとに停止して表示します。

/W      ワイド一覧形式で表示します。

/B      ディレクトリ名とファイル名だけを表示します。

/L      小文字で表示します。

/S      サブディレクトリ内も表示します。

/An     指定した属性のファイルを表示します。

           n= D:ディレクトリ      R:読みとり専用    H:隠しファイル

              S:システムファイル  A:アーカイブ      -:その属性以外

これ以外のオプション(/O, /C)やスイッチの打ち消し、環境変数DIRCMDはサポートされていませんのでご注意ください。

/AnはDOSのDIRコマンドとは若干仕様が異なる部分があります。WinBatchEh Ver.1.24以降ではほとんど同等になりましたが、このため逆に以前のバージョンとは若干動作が異なります。

/Bと/Sを両方指定すると、すべてのファイルをフルパスで表示します。たとえば "DIR /B /S /A-D>FILELIST" とすれば、すべてのノーマルファイルのみをフルパスでファイルに出力することができます。

戻り値

ありません。

例

DIR

DIR A:

DIR A:\BIN

DIR A:\BIN\*.COM


DRIVE:
A: などドライブ名のみ

カレントドライブを変更します。

戻り値

  0 ～ 255	アクセス可能なドライブ数

例

A:

参考

CHDIR, CD


CHDIR, CD
CHDIR [ディレクトリ名]

CD [ディレクトリ名]

カレントディレクトリの変更またはカレントディレクトリの表示を行ないます。

戻り値

  0	正常終了

  1	エラー

例

CHDIR	(カレントディレクトリを表示)

CHDIR A:	(A:のカレントディレクトリを表示)

CD A:\BIN	(A:のカレントディレクトリを変更)

参考

DRIVE:

CDD

PUSHD/POPD

MKDIR, MD

RMDIR, RD


MKDIR, MD
MKDIR ディレクトリ名

MD ディレクトリ名

ディレクトリの作成を行ないます。

戻り値

  0	正常終了

  1	作成エラー

255	パラメーターが不足

例

MKDIR TEST

MD C:

参考

RMDIR, RD

CHDIR, CD


RMDIR, RD
RMDIR ディレクトリ名

RD ディレクトリ名

ディレクトリの削除を行ないます。ディレクトリ内にファイルが存在するときは削除は行なえません。

戻り値

  0	正常終了

  1	削除エラー

255	パラメーターが不足

例

RMDIR TEST

RD C:

参考

MKDIR, MD

CHDIR, CD


CDD
CDD ドライブ:ディレクトリ

ドライブの移動とカレントディレクトリの変更を行ないます。

戻り値

  0	正常終了

  1	エラー

例

CDD C:\WINUTY

参考

DRIVE:

CHDIR, CD

PUSHD/POPD


PUSHD/POPD
PUSHD [ドライブ:][ディレクトリ]

POPD

ドライブの移動とカレントディレクトリの変更/復帰を行ないます。

PUSHDはドライブ、ディレクトリの移動を行ないます。

POPDはカレントドライブ、ディレクトリを、直前にPUSHDを実行した時のカレントドライブ、ディレクトリに移動します。

PUSHD/POPDの情報の保存は環境変数(_DIR_STACK_)に行なわれます。

PUSHDだけを連続して実行することも可能ですが、環境変数の最大の長さ(約500文字)を越えることはできません(エラーになります)。

戻り値

  0	正常終了

  1	エラー

例

PUSHD A:

PUSHD C:\WINUTY

POPD

参考

DRIVE:

CHDIR, CD

CDD


COPY
COPY [/F] [/U] [/Z] [/TS] [/TD] 送り側 [受け側]

ファイルのコピーを行ないます。送り側ではファイル名にワイルドカード指定を使用できます。またディレクトリやドライブ名のみも指定できます。

なお、以下の制限があります。

o 受け側にすでに同名のファイルが存在しても応答なしで上書きされます。

o“+”によるファイルの連結はできません(TYPEコマンドを使用してください)。

o 受け側にワイルドカードを使用することはできません。

o 標準デバイスは NUL 以外はサポートしていません。

o コピーされたファイルの属性はノーマル(読み書き可)になります。

以下のオプションが指定できます(オプション及び文字列とオプションの間はスペースを空けてください)。

/F           システムのエラーを表示しません。

/U           ファイルのタイムスタンプを比較してアップデートコピーを行ないます。

/Z           Microsoft 圧縮ユーティリティで圧縮されたファイルを展開します。(LZEXPAND)

/TS          送り側ファイルの最終アクセス時刻を更新しません。

/TD          受け側ファイルの作成時刻と最終アクセス時刻を送り側ファイルに合せます。

/Fを指定するとドライブにフロッピーが入ってない場合や共有違反が起きた場合のシステムのエラーメッセージを抑止します("EXECUTEWND ERROFF" の状態であればエラーが起きても全く止まらないことになります)。

/Uを指定すると送り側と受け側で同じファイルが存在する場合、ファイルのタイムスタンプを比較して、受け側が同じか新しければコピーを行ないません。ただし普通にコピーを行なったときと同じようにファイル名の表示は行なわれます(カウントはコピーを行なったファイル数を表示します)。

/Zを指定するとMicrosoft 圧縮ユーティリティのCOMPRESS.EXEで圧縮されたファイルであれば、コピー先には展開した内容でファイルを作成します。圧縮されてないファイルでこのオプションを指定しても、普通のコピーが行なわれます。

/TSと/TDは32ビットバージョンでファイルシステムがNTFSの時のみ有効です。

/TSは送り側ファイルの最終アクセス時刻を変更しません。通常コピーを行なうと、ファイルへの最終アクセス時刻が更新されますが、/TSを付けると元の時刻のままになります。

/TDは受け側ファイルの作成時刻と最終アクセス時刻を、送り側ファイルの時刻と同じにします。通常はコピーされた作成時刻と最終アクセス時刻は、その時のシステムの時刻になります。なお、/TDでは送り側ファイルの最終アクセス時刻を保存しませんので、必要ならば/TSと/TSの両方を指定してください。

WinBatchEhのCOPYコマンドでは '+' によるファイルの連結ができません。ファイルの連結を行ないたい場合、TYPEコマンドのリダイレクト出力を使用すれば可能ですので、TYPEコマンドを使用してください。

戻り値

  0	正常終了

  1	送り側ファイルのエラー

  2	受け側ファイルのエラー

 10	送り側と受け側ファイルが同じファイル名

100	(/Z時のみ)LZEXPANDでのエラー

252	メモリーが不足

255	パラメーターが不足

例

COPY A:\FILENAME.TXT B:\

COPY FILENAME.TXT FILENAME.BAK

COPY /TS A:\BIN B:\

COPY /Z A:\SETUP.IN_ B:\SETUP.INF

参考

TIMESTAMP

DEL, DELETE

EXECUTEWND, EXECWND(EXECUTEWND OFF)


REN, RENAME
REN 旧ファイル名 新ファイル名

RENAME 旧ファイル名 新ファイル名

ファイル名の変更を行ないます。

DOSのRENコマンドと違い、カレント以外のドライブ及びディレクトリのファイル名を変更する場合は新ファイル側もドライブ・ディレクトリを付けたフルパスで指定してください。

同一ドライブであればディレクトリ間の移動(MOVE)も可能です。

なお、ワイルドカードは使用できません。

戻り値

  0	正常終了

  1	エラー

255	パラメーターが不足

例

REN FILENAME.TXT FILENAME.BAK

REN A:\TXT\FILENAME.TXT A:\TXT\FILENAME.BAK

REN A:\TXT\FILENAME.TXT A:\OLD\FILENAME.OLD

参考

COPY


DEL, ERASE
DEL [/Y] ファイル名

ERASE [/Y] ファイル名

ファイルの削除を行ないます。

ファイル名にはワイルドカードを指定できます。またディレクトリやドライブ名のみも指定できます。

/Yを指定しなかった場合、ディレクトリ内のすべてのファイルの削除を指定した場合に、削除して良いかどうかのウィンドウが表れます。

戻り値

  0	正常終了

  1	削除エラー

  2	ファイルが見つからない

 21	ユーザーによる中断(ディレクトリや*.*を指定時)

255	パラメーターが不足

例

DEL A:\FILENAME.TXT

DEL /Y C:\TMP

参考

COPY


TYPE
TYPE [/B] [ディレクトリ名] ファイル名 [ファイル名..] [[ディレクトリ名] ..]

テキストファイルの内容表示を行ないます。

DOSのTYPEより拡張されていて、複数のファイルを指定することができます。ディレクトリが指定された場合、それ以降のファイル名はそのディレクトリから検索が行なわれます。

複数のファイルを一度に指定して、それをリダイレクト出力することにより、ファイルの連結も行なえます。

/Bはリダイレクト出力を行なうときにのみ意味を持ち、EOF(0x1a)のコードを無視するようにします(必ずファイルの最後まで読みます)。バイナリファイルの連結を行なう場合はこのオプションを指定してください。

戻り値

  0	正常終了

  1	表示できない

  2	ファイルが見つからない

255	パラメーターが不足

例

TYPE A:\FILENAME.TXT

TYPE A:\DOC FILE1.DOC FILE2.DOC A:\TXT FILE3.TXT

TYPE C:\ CONFIG.SYS AUTOEXEC.BAT > SYSTEM.ENV

TYPE /B BINDATA1.DAT BINDATA2.DAT > BINDATAS.DAT

参考

MORE


リダイレクト出力

バッチ実行ウィンドウに表示する代わりにファイルに出力を行ないます。

コマンド行の最後に ">"(新規作成) または ">>"(追加出力) に続けて出力するファイル名を指定してください。標準デバイスは "NUL" のみサポートします。なおリダイレクト入力やパイプ処理についてはサポートしていません。

戻り値

ありません。

例

ECHO カレントディレクトリは>CURDIR.TXT

CD>>CURDIR.TXT

PAUSE>NUL


リダイレクト入力

リダイレクト入力はサポートしていません。

参考

リダイレクト出力


パイプ処理

パイプ処理はサポートしていません。

参考

リダイレクト出力


GETVERSION

WinBatchEhのバージョン番号を取得します。

バージョン番号は ERRORLEVEL に数値として返ります。バージョンが 1.23 であれば 123 の数値がERRORLEVELに返ります。

※注意: このコマンドは WinBatchEh 1.02 以上で使用可能です。

戻り値

  0	正常終了

102 ～  255	リターン値

例

GETVERSION


BATCHWND, BATWND
BATCHWND

BATWND

バッチ内容表示画面の表示の制御(ウィンドウ状態で表示、最小化状態、非表示状態、ウィンドウタイトルの変更、アイコンの変更)を行ないます。

初期状態ではプログラムマネージャの起動指定などに従った状態で表示を行ないます(但しプログラムマネージャでアイコンにして起動した場合ユーザーによる「最大化」や「元に戻す」が使用できる状態で起動します)。

BATCHWND ON

BATWND ON

バッチ内容表示画面をウィンドウ状態(表示状態)にします。

戻り値

ありません。

例

BATCHWND ON

BATCHWND OFF

BATWND OFF

バッチ内容表示画面を最小化(アイコン状態)にします。この状態では使用者による最大化(フルスクリーン状態)や元の状態に戻す(ウィンドウ状態)こともできなくなります。

パラメーターにバッチファイル名を与えて、バッチを起動するときなどにウィンドウ表示を一切行なわないためには、バッチの先頭を次のようにしてください。

@BATCHWND OFF

@EXECUTEWND OFF

:

戻り値

ありません。

例

BATCHWND OFF

BATCHWND HIDE

BATWND HIDE

バッチ内容表示画面をアイコンを含めて隠した状態(非表示)にします。

注意: "BATCHWND HIDE" の状態ではバッチを安全に終了するための「ストップ」ボタンやWinBatchEhの終了が、通常操作では行なえなくなりますので、このコマンドは通常は使用しないでください。バッチ内容表示画面を非表示にするには、"BATCHWND OFF" を使用してください。

戻り値

ありません。

例

BATCHWND HIDE

BATCHWND TITLE "タイトル名"

BATWND TITLE "タイトル名"

バッチ内容表示画面のウィンドウのタイトルを設定します。

初期値は "WinBatchEh - バッチファイル名" となっています。

戻り値

ありません。

例

BATCHWND TITLE "%0 のバッチ内容です"

BATCHWND ICON [ファイル名 [インデックス番号]]

BATWND ICON [ファイル名 [インデックス番号]]

バッチ内容表示画面がアイコン化されているときのアイコンを指定します。

ファイル名にはアイコンファイルや実行ファイル(EXE,DLL)が指定できます。ファイル内に複数のアイコンが含まれている場合はインデックス番号の数値により、どのアイコンを使用するか指定することができます。インデックス番号を省略すると0になります。

ファイル名以下が省略された場合はWinBatchEhデフォルトのニコチャンバッチ(?)のアイコンになります。

ファイルが存在しないときやインデックス番号が正しくない場合は、アイコンは変更されません。

戻り値

ありません。

例

BATCHWND ICON C:\WINDOWS\PROGMAN.EXE 2

参考

EXECUTEWND, EXECWND


EXECUTEWND, EXECWND
EXECUTEWND

EXECWND

バッチ実行画面の表示の制御(ウィンドウ状態で表示、非表示状態エラー発生時に一時停止、エラー発生時に停止しない、ウィンドウサイズの指定、ウィンドウタイトルの変更、フォントの指定)を行ないます。

EXECUTEWND ON

EXECWND ON

バッチ実行ウィンドウの表示を行ないます。

初期状態では EXECUTEWND ON の状態になっています。

戻り値

ありません。

例

EXECUTEWND ON

EXECUTEWND OFF

EXECWND OFF

バッチ実行ウィンドウの表示を行ないません。

戻り値

ありません。

例

EXECUTEWND OFF

EXECUTEWND ERRON

EXECWND ERRON

エラーが起きたときにキー入力があるまで停止します。

バッチ実行ウィンドウの表示を行なわないとき(EXECUTEWND OFFの状態)エラーメッセージはすべてメッセージボックスに表示され[OK]ボタンの入力待ちとなります。

初期状態では EXECUTEWND ERRON の状態になっています。

ただしすべてのコマンドにおいて、エラー発生時に停止するわけではありません。コマンドによってはエラーが発生してもメッセージを表示するだけのものがあります。

戻り値

ありません。

例

EXECUTEWND ERRON

EXECUTEWND ERROFF

EXECWND ERROFF

エラーが起きたときにキー入力を待ちません。

バッチ実行ウィンドウの表示を行なわないとき(EXECUTEWND OFFの状態)はエラーメッセージさえ表示されませんのでご注意ください。

戻り値

ありません。

例

EXECUTEWND ERROFF

EXECUTEWND 横文字数 縦文字数

EXECWND 横文字数 縦文字数

バッチ実行ウィンドウがONの場合のサイズを指定します。

横文字数は40～80、縦文字数は10～30が指定できます。初期値は横80、縦25です。

サイズの変更後バッチ実行ウィンドウの表示内容は消去されます。

戻り値

ありません。

例

EXECUTEWND 60 20

EXECUTEWND TITLE "タイトル名"

EXECWND TITLE "タイトル名"

バッチ実行ウィンドウがONの場合、ウィンドウのタイトルを設定します。

初期値は "WinBatchEhExec - バッチファイル名" となっています。

戻り値

ありません。

例

EXECUTEWND TITLE "%0 のバッチ実行画面です"

EXECUTEWND FONT "フォント名" [高さ [幅]]

EXECWND FONT "フォント名" [高さ [幅]]

バッチ実行ウィンドウがONの場合の表示するフォントを指定します。

フォント名には固定ピッチのフォントのみが指定できます。

高さ、幅を省略するとシステムのデフォルトの大きさになります。

高さのみを指定して幅を省略すると、幅は自動的に計算されます。

フォントの指定を行なうと、バッチ実行ウィンドウのすべての表示が指定のフォントに変更されます。

戻り値

ありません。

例

EXECUTEWND FONT "ＭＳ ゴシック" 12 6

参考

BATCHWND, BATWND


ERRORLEVEL(設定,参照)
環境変数 ERRORLEVEL

ERRORLEVELの数値を文字列として参照できます。またERRORLEVELにSETコマンドで数値の代入が行なえます。

ERRORLEVEL を文字列として参照

%ERRORLEVEL%とする事により、ERRORLEVELの数値を文字列として扱えます。

戻り値

ありません。

例

ECHO エラー値は %ERRORLEVEL% です

IF %ERRORLEVEL%==1 GOTO END

ERRORLEVEL への代入

SETコマンドでERRORLEVELに数値を代入できます。(数値の指定方法)

戻り値

代入した値

例

SET ERRORLEVEL=1

SET ERRORLEVEL=12+56

SET ERRORLEVEL=%ERRORLEVEL%+1	(ERRORLEVELを1増やす)

SET ERRORLEVEL=RANDOM 100

注意

ERRORLEVELと=の間に空白を入れないでください。また、 " " 等で囲わないでください。

参考

ERRORLEVEL(IF ERRORLEVEL)


GOSUB, RETURN
GOSUB LABEL ～ RETURN

バッチ内のサブルーチンを呼び出します。

GOTOと同じようにLABELの行にジャンプしますが、RETURNコマンドによりGOSUBの次の行に戻ってくることができます。

GOSUBは複数の階層に渡って使用することができます(最大32階層)。

戻り値

ありません。

例

GOSUB SUB

:

EXIT

:SUB

:

RETURN

参考

GOTO


IF(構造化)
IF ～ ELSE ～ ENDIF (構造化 IF)

条件の判定を行なって続く行を実行します。構造化の行なえる IF です。

条件の判定はバッチコマンド互換のIFと同じものが使えます。

構造化IFを使用するときには、IFの判定の後すぐに改行を行ないます。

DOSのバッチコマンド互換のIF文との違いは次のようになります。

o DOSのバッチコマンド互換のIF:

  IF ERRORLEVEL 1 ECHO ERROR  (判定文に続けて実行コマンドを記述)

o 構造化されたIF:

  IF ERRORLEVEL 1  (ここには何も入れない)

    ECHO ERROR

  ENDIF

構造化されたIFでは、判定が真のときに続く行をENDIFまたはELSEまでを実行します。

判定が偽のときには、ELSEがあれば同じく続く行をENDIFまで実行します。

書き方 1 (IF ～ ENDIF)

  IF 条件文

    条件が真のときに実行

  ENDIF

書き方 2 (IF ～ ELSE ～ ENDIF)

  IF 条件文

    条件が真のときに実行

  ELSE

    条件が偽のときに実行

  ENDIF

書き方 3 (IF ～ ELSE IF ～ ENDIF)

  IF 条件文1

    条件1が真のときに実行

  ELSE IF 条件文2

    条件1が偽で条件2が真のときに実行

  ELSE

    条件1も条件2も偽のときに実行

  ENDIF

実行する行は複数書くことができます。

またIFでの実行の行の中でさらにIFを使うこともできます。上記の書き方 3は次のように書くこともできます。

  IF 条件文1

    条件1が真のときに実行

  ELSE

    IF 条件文2

      条件1が偽で条件2が真のときに実行

    ELSE

      条件1も条件2も偽のときに実行

    ENDIF

  ENDIF

このようなIFの使い方の数に制限はありませんが、ENDIFをその数だけ付けることを忘れないようにしてください。

構造化IFのループ内で行なうGOTOは問題ありませんが、ループ外からGOTOでループ内にジャンプを行なうようなことは行なわないでください。

"ELSE IF" を使用する場合、"ELSE" と "IF" の間には空白を入れてください。

戻り値

ありません。

参考

IF(バッチコマンド互換)


WHILE, ENDWHILE, BREAK
WHILE ～ ENDWHILE

条件の判定を行なって、判定が真の間 ENDWHILE までの行を実行します。

条件の判定はバッチコマンド互換のIFと同じものが使えます。

また条件に数値を指定することもできます。この場合 0 でなければ真となります。

WHILEは必ず構造化を行なって記述します。一行で完結することはできません。

書き方 1

  SET ERRORLEVEL=10

  WHILE ERRORLEVEL 1	← 条件式で判定

    PRINTF あと%%5d回残ってます.%ERRORLEVEL%

    SET ERRORLEVEL=%ERRORLEVEL%-1

  ENDWHILE

書き方 2

  SET COUNT=10

  WHILE %COUNT%	← 数値で判定

    PRINTF あと%%5d回残ってます.%COUNT%

    SPRINTF COUNT %%d %COUNT%-1

  ENDWHILE

途中で WHILE ループを抜けるには BREAK を使用します。

  SET COUNT=10

  WHILE %COUNT%

    PRINTF あと%%5d回残ってます %COUNT%

    MESSAGEBOX=MB_YESNO 続けますか?

    IF %ERRORLEVEL%==IDNO

      BREAK	→ ENDWHILEの次の行にジャンプ

    ENDIF

    SPRINTF COUNT %%d %COUNT%-1

  ENDWHILE

またWHILEでの実行の行の中でさらにWHILEを使うこともできます。

そのときの BREAK は対応する WHILE を抜けることになります。

  WHILE 1

    SET COUNT=1

    WHILE NOT %COUNT%==10

      PRINTF %%5d回目です %COUNT%

      IF EXISTWINDOW "メモ帳"

        BREAK	→ (2)にジャンプ

      ENDIF

      SPRINTF COUNT %%d %COUNT%+1

    ENDWHILE

    (2)

    IF EXISTWINDOWR "メモ帳 - (無題)"

      BREAK	→ (1)にジャンプ

    ENDIF

  ENDWHILE

  (1)

このようなWHILEの使い方は最大32の深さまで使用できます。ENDWHILEをその数だけ付けることを忘れないようにしてください。

WHILEのループ内で行なうGOTOは問題ありませんが、ループ外からGOTOでループ内にジャンプをするようなことは行なわないでください。

ENDWHILEの代わりにWENDを使う事もできます。ENDWHILEもWENDも意味は同じです。

戻り値

ありません。

参考

IF(バッチコマンド互換)


FOR(構造化)
FOR ～ ENDFOR (構造化 FOR)

構造化の行なえるFORです。ENDFORの行までを繰り返し実行を行ないます。

変数の使用についてはバッチコマンド互換のFORと同じものが使えます。

構造化FORを使用するときには、FOR文の行の実行コマンドのところで改行を行ないます。DOSのバッチコマンド互換のFOR文との違いは次のようになります。

o DOSのバッチコマンド互換のFOR:

  FOR %%A IN (1 2) DO ECHO %%A ("DO" に続けて実行コマンドを記述)

o 構造化されたFOR:

  FOR %%A IN (1 2) DO (ここには何も入れない)

    ECHO %%A

  ENDFOR

構造化されたFORでは、ENDFORまでのすべての実行文に対して変数に代入を行なって繰り返し実行を行ないます。

構造化FORのループ内で行なうGOTOは問題ありませんが、ループ外からGOTOでループ内にジャンプをするようなことは行なわないでください。

また、FOR文内でFOR文を使用する(入れ子にする)ことはできません。

戻り値

ありません。

参考

FOR(バッチコマンド互換)


EXEC
EXEC[=フラグ] 実行ファイル名

実行ファイルを起動し、バッチは実行が終了するまで停止します。必ず拡張子も指定してください。

実行ファイル名のみで起動するのと同じですが、フラグの指定を行なう事により起動状態を指定できます。

実行ファイル名にパス名を含めない場合はカレント, WINDOWS, Windowsの SYSTEM, WinBatchEh 起動時に設定されていた環境変数 PATH のディレクトリ(16ビットバージョンでは WinBatchEh 内で設定した PATH は参照しません)を検索に行きます。

DOS用の実行ファイルは動作するかも知れませんが正式なサポートとは致しません。またDOS用の実行ファイル終了後のERRORLEVELはCOMMAND.COM経由で起動している事もあって取得する事ができません。

関連付けが行なわれているファイルを直接指定することも可能です(SW_NOEXTが指定されているときを除く)。例えば WINBATCH.TXT を起動すると、TXT ファイルに NOTEPAD.EXE が関連付けされていれば、NOTEPADのパラメーターに WINBATCH.TXT を渡して起動が行なわれます。

フラグには以下のものを指定できます。(定義文字列を使用する場合は大文字で指定してください)。

<数値> <定義文字列>             <起動状態>

指定なし                        アプリのデフォルトの大きさ

0      SW_HIDE                  非表示

1      SW_NORMAL または         ウィンドウ状態

       SW_SHOWNORMAL            ウィンドウ状態

2      SW_SHOWMINIMIZED         アイコン状態

3      SW_MAXIMIZE または       最大化状態

       SW_SHOWMAXIMIZED         最大化状態

5      SW_SHOW                  アプリのデフォルトの大きさ

6      SW_MINIMIZE              非アクティブなアイコン状態

7      SW_SHOWMINNOACTIVE       非アクティブなアイコン状態

128    SW_NOEXT                 関連付けを無視

フラグの設定によってはアプリケーションが動作しない事がありますので、その場合フラグを変更して起動させてみてください。

32ビットバージョンで、Win32アプリケーションをEXECコマンドで起動させた場合、終了時のアプリケーションのリターンコードが環境変数 "_RETURNCODE_" に設定されます。

戻り値

  0 ～  31	プログラムが実行できない

 32 ～	正常実行

例

EXEC CALC.EXE

EXEC=2 CALC.EXE

EXEC=SW_MAXIMIZE CALC.EXE

EXEC=SW_MAXIMIZE WINBATCH.TXT

参考

START

ファイルを実行


START
START[=フラグ] 実行ファイル名

実行ファイルを起動しますが、実行が終了するのを待たずにバッチの実行が続けて行なわれます。必ず拡張子も指定してください。

実行ファイル名にパス名を含めない場合はカレント, WINDOWS, Windowsの SYSTEM, WinBatchEh 起動時に設定されていた環境変数 PATH のディレクトリ(16ビットバージョンでは WinBatchEh 内で設定した PATH は参照しません)を検索に行きます。

DOS用の実行ファイルは動作するかも知れませんが正式なサポートとは致しません。またDOS用の実行ファイル終了後のERRORLEVELはCOMMAND.COM経由で起動している事もあって取得する事ができません。

関連付けが行なわれているファイルを直接指定することも可能です(SW_NOEXTが指定されているときを除く)。例えば WINBATCH.TXT を起動すると、TXT ファイルに NOTEPAD.EXE が関連付けされていれば、NOTEPADのパラメーターに WINBATCH.TXT を渡して起動が行なわれます。

Windows95では、ショートカットファイル(*.lnk)やインターネットエクスプローラでのローカルファイルの指定(file:filename.htm)も、STARTコマンドで関連付けされたファイルとして起動することができます。これらの特殊な関連付けファイルの起動ができるのはSTARTコマンドだけで、EXECコマンドでは起動できませんし、STARTコマンドでも後述の /WAIT オプションは使用できませんのでご注意ください。

フラグの指定を行なう事により起動状態を指定できます。フラグには以下のものを指定できます。(定義文字列を使用する場合は大文字で指定してください)。

<数値> <定義文字列>             <起動状態>

指定なし                        アプリのデフォルトの大きさ

0      SW_HIDE                  非表示

1      SW_NORMAL または         ウィンドウ状態

       SW_SHOWNORMAL            ウィンドウ状態

2      SW_SHOWMINIMIZED         アイコン状態

3      SW_MAXIMIZE または       最大化状態

       SW_SHOWMAXIMIZED         最大化状態

5      SW_SHOW                  アプリのデフォルトの大きさ

6      SW_MINIMIZE              非アクティブなアイコン状態

7      SW_SHOWMINNOACTIVE       非アクティブなアイコン状態

128    SW_NOEXT                 関連付けを無視

フラグの設定によってはアプリケーションが動作しない事がありますので、その場合フラグを変更して起動させてみてください。

また、Windows95のSTARTコマンドとの互換を持たせるために、オプションによる動作の指定もサポートします。それぞれのオプションをSTARTのすぐ後に指定してください(複数のオプションを指定する場合はそれぞれにスペース文字を入れてください)。

/W[AIT]	コマンドの実行が終わるまで待つ

/M[INIMIZED]	アイコン状態で起動

/MAX[IMIZED]	最大化状態で起動

/R[ESTORED]	アプリのデフォルトの大きさで起動

32ビットバージョンでは以下のオプションも指定できます(16ビットバージョンではこのオプションは指定しても無視されます)。

/I[NPUTIDLE]	コマンドの起動が完全に行なわれるまで待つ

戻り値

  0 ～  31	プログラムが実行できない

 32 ～	正常実行

例

START CALC.EXE

START=2 CALC.EXE

START=SW_MAXIMIZE CALC.EXE

START=SW_MAXIMIZE WINBATCH.TXT

START /MINIMIZED CALC.EXE

START /I /MAX CALC.EXE

参考

EXEC

ファイルを実行


MORE
MORE [ディレクトリ名] ファイル名 [ファイル名..] [[ディレクトリ名] ..]

テキストファイルの内容表示を行ないます。画面行数分表示を行なうと一時停止を行ないます。

DOSのMOREより拡張されていて複数のファイルを指定することができます。複数のファイルが指定された場合2番目以降ファイルを表示する前にも一時停止を行ないます。

ディレクトリが指定された場合、それ以降のファイル名はそのディレクトリから検索が行なわれます。

戻り値

  0	正常終了

  1	表示できない

  2	ファイルが見つからない

255	パラメーターが不足

例

MORE A:\FILENAME.TXT

MORE A:\ CONFIG.SYS AUTOEXEC.BAT

MORE A:\DOC FILE1.DOC FILE2.DOC A:\TXT FILE3.TXT

参考

TYPE


GETKEYSTATE
GETKEYSTATE キーコード

指定のキー(マウスを含む)が押されているかどうかを調べます。

キーコードには仮想キーコードまたは'A'などの実際の文字を指定します。

仮想キーのコードの参照

バッファ内にたまっているキーではなく、その時に押されているかどうかの判定を返しますのでご注意ください。

戻り値

  0	キーが押されていない

  1	キーが押されている

255	パラメーターが不足

例

GETKEYSTATE VK_SHIFT

参考

PAUSE


CHOICE
CHOICE [/C[:]選択肢] [/N] [/S] [/T[:]c,nn] [文字列]

選択肢の中のキーが入力されるのを待って、入力されたキーの値を返します。

以下のオプションが指定できます(オプション及び文字列とオプションの間はスペースを空けてください)。

/C[:]選択肢  選択肢として入力を行なえるキーを指定します。デフォルトは YN です。

/N           プロンプトの終わりに選択肢と ? を表示しません。

/S           意味がありません。

/T[:]c,nn    nn秒経過した後の選択肢の既定値を c の文字に設定します。

文字列       表示するプロンプト文字列を指定します。

戻り値(ERRORLEVEL)として、選択肢の先頭からの順序で1,2,3...の数値が返ります。

パラメーターを付けずに実行すると、

[Y,N]?

の表示になります。

なお、"EXECUTEWND OFF" 状態では文字列の表示も行ないませんし、キー入力も待ちません。その場合は CHOICEBUTTON を使用してください。

/Tで指定できるのは0～65535秒の時間です。

文字列の先頭に "/" を指定する事はできません。

DOSのCHOICEでは/Sを付けると選択キーの大文字と小文字を区別しますが、その機能はありません。/Sを付けても無視されます。

戻り値

  0 ～  	リターン値

255	パラメーターのエラー

例

CHOICE よろしいですか

CHOICE /C:123456 1～6の数字を入力してください

CHOICE /C:123456 /T:1,10 1～6の数字を入力してください

参考

CHOICEBUTTON

PAUSE


LET
LET 環境変数名=数値計算式

環境変数に計算結果を代入します。

SPRINTF の方が複雑な指定が可能ですが、10進数だけの演算結果を代入するのに LET は簡単な記述で代入が行なえます。

数値の指定部分では演算を含めて指定ができます。(数値の指定方法)

戻り値

  0	正常終了

254	環境変数の領域が足りない

例

LET Y=128+1024*16

LET COUNT=COUNT+1

LET X=RANDOM 10

参考

SET

SPRINTF


PRINTF
PRINTF 書式 [引数 [引数] ...]

書式に従って表示を行ないます。C言語などのprintfと似たコマンドです。

書式には以下の形式が使用できます。([]で囲われた項目は省略可能です)。書式では英文字の大小文字が区別されます。

  %%[-][#][0][width][.precision]type

  %%	引数の解釈を開始(バッチ内なので%を重ねてください)

  -	出力を左揃えにし、出力値の右側をwidthの不足分0や空白で埋める

  #	16進数のとき0xまたは0Xを付けて表示

  0	出力幅がwidthより少なければ不足分'0'で埋める

  width	出力幅の最小値を10進数で指定

  .precision	文字列の最大表示長さを指定

  type	出力する内容を指定

    d, i	(符号付き)10進整数

    u	(符号なし)整数

    x	(符号なし)16進数(小文字)

    X	(符号なし)16進数(大文字)

    s	文字列

    %%	%自身(一つの%を指定するには%を4つ重ねることになります)

また書式には以下のエスケープが使用できます。

  \n	改行

  \g	ベル(SystemDefaultのサウンドを再生)

  \t	タブ(0x09)

  \xNNNN	4桁までの16進コード1文字(ASCII,漢字)

  \(環境変数)	環境変数の内容

  \\	\自身

符号付きの数値も表示できるかと思いますが、あまり意味がないかも知れません。数値の指定部分では演算を含めて指定ができます。(数値の指定方法)

文字列指定(%%s)を指定する場合はダブルクォーテーション(")で文字列を囲ってください。(例: "STRINGS")

ファイル名などが入った環境変数や文字列を書式側で使用すると、\記号でのエスケープ文字としての処理が行なわれてしまいますので、%%sで引数にするようにしてください。

書式に空白文字が必要な場合ダブルクォーテーション(")で書式を囲ってください。(例: "全部で %%d 個のファイルです")

書式だけをダブルクォーテーションで囲って、リダイレクト出力を行なう場合は、"strings" >filename のように、リダイレクト記号の前に一つ以上のスペースを空けてください。

C言語でサポートされているものでも、ここに書かれてない type(例えばlong型やfloat型など) は動作が不安定になる可能性がありますので指定しないでください。

PRINTFは \n を付けなければ改行処理を行ないません。改行を行なう必要がある場合は最後に \n を付けてください。

引数にはWinBatchEhで使用できるコマンド及び外部コマンドも指定することができます(但し外部コマンドはWinBatchEh用のユーティリティー以外は意味がありません)。引数にコマンドを指定する場合は先頭に '!' を指定してください(例: !GETCLOCK)。コマンドに空白が必要な場合は '!' 以降を " " で囲います(例: !"CD A:")。

引数と対になる書式が "%%d" などの数値である場合は、コマンド実行後のERRORLEVELが、"%%s"の文字列である場合はコマンド実行時のバッチ実行画面への出力が取り込まれます。

コマンドを起動した場合、ERRORLEVELは最後のコマンドにより返された値となります。

エスケープの \(環境変数) を使用すれば環境変数を配列的に扱うことが可能になります。例えば DATA[1], DATA[2]... という環境変数に値が代入されていて配列の添字を COUNT という環境変数で示すとすれば、\(DATA[%COUNT%]) で必要な環境変数の内容を取り出せます。

エスケープの \xNNNN を使用する場合は、引数(%dなど)は一切使用できません。

戻り値

ありません。

例

PRINTF "%%d 回実行を行ないます\n" %1

PRINTF "現在は %%02d 時です\n" %HOUR%

PRINTF "現在のディレクトリは %%s です\n" !CD

PRINTF 選択されたファイルは%%sです "%FNAME%"

PRINTF "\x00\x01\x02" >datafile.dat

参考

ECHO

SPRINTF


SPRINTF
SPRINTF 環境変数名 書式 [引数 [引数] ...]

書式に従って環境変数に代入を行ないます。C言語などのsprintfと似たコマンドです。

出力される結果が何もない場合、環境変数は空になります(削除されます)。

書式には以下の形式が使用できます。([]で囲われた項目は省略可能です)。書式では英文字の大小文字が区別されます。

  %%[-][#][0][width][.precision]type

  %%	引数の解釈を開始(バッチ内なので%を重ねてください)

  -	出力を左揃えにし、出力値の右側をwidthの不足分0や空白で埋める

  #	16進数のとき0xまたは0Xを付けて表示

  0	出力幅がwidthより少なければ不足分'0'で埋める

  width	出力幅の最小値を10進数で指定

  .precision	文字列の最大表示長さを指定

  type	出力する内容を指定

    d, i	(符号付き)10進整数

    u	(符号なし)整数

    x	(符号なし)16進数(小文字)

    X	(符号なし)16進数(大文字)

    s	文字列

    %%	%自身(一つの%を指定するには%を4つ重ねることになります)

また書式には以下のエスケープが使用できます。

  \xNNNN	4桁までの16進コード1文字(ASCII,漢字)

  \(環境変数)	環境変数の内容

  \\	\自身

符号付きの数値も代入できるかと思いますが、あまり意味がないかも知れません。数値の指定部分では演算を含めて指定ができます。(数値の指定方法)

文字列指定(%%s)を指定する場合はダブルクォーテーション(")で文字列を囲ってください。(例: "STRINGS")

ファイル名などが入った環境変数や文字列を書式側で使用すると、\記号でのエスケープ文字としての処理が行なわれてしまいますので、%%sで引数にするようにしてください。

書式に空白文字が必要な場合ダブルクォーテーション(")で書式を囲ってください。(例: "全部で %%d 個のファイルです")

C言語でサポートされているものでも、ここに書かれてない type(例えばlong型やfloat型など) は動作が不安定になる可能性がありますので指定しないでください。

またエスケープ指定のうち上記に書かれていないもの(\nなど)は使用しないでください。

引数にはWinBatchEhで使用できるコマンド及び外部コマンドも指定することができます(但し外部コマンドはWinBatchEh用のユーティリティー以外は意味がありません)。引数にコマンドを指定する場合は先頭に '!' を指定してください(例: !GETCLOCK)。コマンドに空白が必要な場合は '!' 以降を " " で囲います(例: !"CD A:")。

引数と対になる書式が "%%d" などの数値である場合は、コマンド実行後のERRORLEVELが、"%%s"の文字列である場合はコマンド実行時のバッチ実行画面への出力が取り込まれます。

コマンドを起動した場合、ERRORLEVELは最後のコマンドにより返された値となります。

エスケープの \(環境変数) を使用すれば環境変数を配列的に扱うことが可能になります。例えば DATA[1], DATA[2]... という環境変数に値が代入されていて配列の添字を COUNT という環境変数で示すとすれば、\(DATA[%COUNT%]) で必要な環境変数の内容を取り出せます。

戻り値

  0	正常終了

254	環境変数の領域が足りない

例

SPRINTF FNAME FILE%%04d.LOG %ERRORLEVEL%

SPRINTF COUNT %%d COUNT+1	(COUNTを1増やす)

SPRINTF DTIME %%2d:%%02d:%%02d !GETCLOCK=GCL_HOUR !GETCLOCK=GCL_MINUTE !GETCLOCK=GCL_SECOND

参考

SET

LET

PRINTF


GETCURRENT
GETCURRENT[=フラグ] 環境変数名 [ドライブ名]

カレントドライブ名やカレントディレクトリ名を取得して環境変数に代入します。

取得できない場合は環境変数は空になります(削除されます)。

ドライブ名を省略すると、現在のカレントドライブになります。

フラグには以下のものを指定できます。定義文字列を使用してください(定義文字列は大文字で指定してください)。

<定義文字列>    <取り出す部分>  (X:\PATHの場合)

指定なし        ドライブ名      (X:)

GCD_DRV         ドライブ名      (X:)

GCD_PATH        パス            (\PATH)

GCD_PATH1       パス\           (\PATH\)

GCD_DRVPATH     ドライブ+パス   (X:\PATH)

GCD_DRVPATH1    ドライブ+パス\  (X:\PATH\)

GCD_WINBATCH    WINBATCH.EXE/WINBAT32.EXEのフルパス名(X:\PATH\WINBATCH.EXE, X:\PATH\WINBAT32.EXE)

GCD_WINBATCHだけは特殊な指定で、WINBATCH.EXE または WINBAT32.EXE のフルパス名を取得します。この場合ドライブ名を指定しても無視されます。

なお、GCD_DRVを使用して、さらにパラメーターにドライブ名を与えた場合、与えたドライブがそのまま代入されます。

コマンド名は GETCURENT でも構いません。綴りが間違っているのですが、1.21以前のバージョンではこの間違った綴りのコマンド名しか使えません。

戻り値

  0	正常終了

  1	ドライブのエラー

254	環境変数の領域が足りない

255	パラメーターが不足

例

GETCURRENT DRIVE %1

GETCURRENT=GCD_PATH DRV_C C:


GETCLOCK
GETCLOCK[=フラグ] [環境変数名]

現在の日付や時刻をERRORLEVELに返します。

環境変数名が指定されると、その環境変数に代入を行ないます。

フラグには以下のものを指定できます。定義文字列を使用してください(定義文字列は大文字で指定してください)。

<定義文字列>    <取り出す部分>  (1995-05-30(火) 14:20:31.12の場合)

指定なし        日              (30)

GCL_YEAR        年の下2桁       (95)

GCL_YEAR4       年(4桁)         (1995)

GCL_MONTH       月              (5)

GCL_DAY         日              (30)

GCL_WEEK        曜日(0=日曜)    (2)

GCL_HOUR        時              (14)

GCL_MINUTE      分              (20)

GCL_SECOND      秒              (31)

GCL_MSEC        ミリ秒          (12)

ミリ秒は機種により必ず0が返ります(PC98シリーズの一部など)。また返ってくる機種でも1/100秒単位の精度しか持たない場合があります。

戻り値

  0 ～  99	取得した値

254	環境変数の領域が不足

例

GETCLOCK=GCL_YEAR

GETCLOCK ENV_DAY

GETCLOCK=GCL_HOUR ENV_HOUR

PRINTF "%%02d年%%02d月%%02日" !GETCLOCK=GCL_YEAR !GETCLOCK=GCL_MONTH !GETCLOCK=GCL_DAY

参考

TIMESTAMP


STRTOKFILE
STRTOKFILE[=フラグ] 環境変数名 フルパス名

フルパスで与えられたファイル名からフラグに従ってパス名やファイル名を取り出して、環境変数に代入します。

指定された部分が見つからない場合は環境変数は空になります(削除されます)。

フラグには以下のものを指定できます。定義文字列を使用してください(定義文字列は大文字で指定してください)。

<定義文字列>    <取り出す部分>  <X:\PATH\NODE.EXTの場合>

指定なし        ファイル名      (NODE.EXT)

STF_DRV         ドライブ+:      (X:)

STF_DRV1        ドライブ        (X)

STF_PATHNAME    ドライブ以外    (\PATH\NODE.EXT)

STF_PATH        \パス           (\PATH)

STF_PATH2       \パス\          (\PATH\)

STF_NAME        ファイル名      (NODE.EXT)

STF_NODE        \ノード         (\NODE)

STF_NODE1       ノード          (NODE)

STF_EXT         拡張子          (EXT)

STF_EXT2        .拡張子         (.EXT)

STF_SHORT       短いファイル名で処理

STF_LONG        長いファイル名で処理

STF_SHORT あるいは STF_LONG は32ビットバージョンでのみ意味を持ちます(16ビットバージョンでは指定されても無視します)。これらのフラグが指定されると、フルパス名が存在する場合に、短いファイル名または長いファイル名に(フルパス全体を)変換して処理を行ないます。フルパス名の指定自身はどちらの指定でも構いませんし、混在しても構いません。ファイルが存在しない場合はフルパス名をそのまま処理します。

戻り値

  0	正常終了

  1	取り出す部分が見つからない

254	環境変数の領域が足りない

255	パラメーターが不足

例

STRTOKFILE NAME %1

STRTOKFILE=STF_DRV DRIVE %NAME%


FILELINE
FILELINE ファイル名 [行数]

ファイルの行数または指定の行数と比較した結果を返します。

ファイルの行数はERRORLEVELに返されます。扱える最大の行数は65534行です。但し、大きなファイルでは処理に時間を要します。

行数を指定すると、ファイルの行数と指定の数値を比較します。行数には0～65535が指定できます。

ファイルの各行は512バイトまでにリターンコードが入っている必要があります。512バイトを越える行はそこで区切られて1行とみなされます。

戻り値

  0 ～   65533	ファイルの行数

65534	ファイルの行数が65534以上

  0	(行数指定時)指定の行数より小さい

  1	(行数指定時)指定の行数と等しい

  2	(行数指定時)指定の行数より大きい

65535	パラメーターが不足、ファイルが見つからない

例

FILELINE C:\TMP\FILENAME.DAT

FILELINE C:\TMP\FILENAME.DAT 100

参考

FILESIZE

LINPUTFILE


LINPUTFILE
LINPUTFILE ファイル名 行番号 [環境変数名]

指定のファイルの特定の行を抜き出して表示します。

扱える最大の行数は65535行です。但し、大きなファイルでは処理に時間を要します。

環境変数名が指定されていれば抜き出した行を環境変数に代入します。

行数はリターンコード単位で計算されます。指定された行が見つからなければ何も表示が行なわれません。環境変数に代入を行なっている場合は空になります(削除されます)。

ファイルの各行は512バイトまでにリターンコードが入っている必要があります。512バイトを越える行はそこで区切られて1行とみなされます。

戻り値

  0	正常終了

  1	指定のファイルが見つからない

  2	指定の行が見つからない

254	環境変数の領域が不足

255	パラメーターのエラー

例

LINPUTFILE FILENAME.TXT 1 LINE1

参考

FILELINE


TIMESTAMP
TIMESTAMP file1 file2

TIMESTAMP=フラグ [/B] [/W,/C,/A] file

2つのファイルのタイムスタンプ(最終更新時刻)の比較、ファイルのタイムスタンプの取得を行ないます。

TIMESTAMP file1 file2

2つのファイルのタイムスタンプ(最終更新時刻)の比較を行ないます。

比較を行なった結果はERRORLEVELに返されます。

戻り値

  0	同じ

  1	file1 の方が新しい

  2	file2 の方が新しい

 10	file1 が見つからない

 20	file2 が見つからない

 50	file1 アクセスエラー

 60	file2 アクセスエラー

255	パラメータが不足

例

TIMESTAMP A:FILENAME.DOC C:FILENAME.DOC

TIMESTAMP=フラグ [/W,/C,/A] [/B] file

ファイルの指定したフラグのタイムスタンプをERRORLEVELに返します。

フラグには取得したい日付や時刻を指定してください。フラグには以下のものを指定できます。定義文字列を使用してください(定義文字列は大文字で指定してください)。

<定義文字列>    <取り出す部分>  (1995-05-30 14:20:31の場合)

GCL_YEAR        年の下2桁       (95)

GCL_YEAR4       年(4桁)         (1995)

GCL_MONTH       月              (5)

GCL_DAY         日              (30)

GCL_HOUR        時              (14)

GCL_MINUTE      分              (20)

GCL_SECOND      秒              (31)(FATでは30)

オプション指定により、取り出すタイムスタンプの指定を行なえます。

/W	ファイルの最終更新時刻(デフォルト)

/C	ファイルの作成時刻

/A	ファイルへの最終アクセス時刻

/Bを指定すると、現在時刻とタイムスタンプを比較した数値(ファイルの最終更新時間などからどれだけ経過したか)をERRORLEVELに返します。

返される数値の単位はフラグの指定に従います。例えば、フラグにGCL_SECOND(秒)を指定していて、1分30秒の違いがある場合ERRORLEVELには90が返されます。同じく、フラグにGCL_DAY(日)を指定していて、1年の違いがある場合365(または366)が返されます。

なお、ERRORLEVELに返される値は最大65535であるため、この値を超える数値は正常に取得できません。

また、GCL_MONTH(月)のときは1か月を30日、GCL_YEARのときは1年を365日に換算して計算が行なわれますので、これらのフラグを使用した場合は多少のずれが生じる場合があります。

注意:

ファイルシステムがFATの場合、ファイルの秒数は2秒単位になります。また、/W以外のオプション指定は正しい数値になりません。

16ビットバージョンの場合、/W以外のオプション指定は意味を持ちません(すべてファイルの最終更新時刻で処理されます)。

戻り値

0～	返される値

65535	パラメータが不足,ファイルが見つからない

例

TIMESTAMP=GCL_YEAR A:FILENAME.DOC

TIMESTAMP=GCL_DAY /B /A A:FILENAME.DOC

参考

FILESIZE

COPY

GETCLOCK


FILESIZE
FILESIZE [/B,/K,/M] [/E:環境変数名] filename [比較するサイズ]

ファイルのサイズまたは指定のサイズと比較した結果を返します。

以下のオプションが指定できます(オプション及び文字列とオプションの間はスペースを空けてください)。

/B           バイト単位で処理します。(デフォルト)

/K           キロバイト単位で処理します。(1キロバイト=1024バイト)

/M           メガバイト単位で処理します。(1メガバイト=1024キロバイト)

/B,/K,/Mにより、処理するファイルサイズの単位を指定できます。指定した単位でのサイズをERRORLEVELに返します。ファイルサイズの小数点未満の値は切り捨てられます。

/E:環境変数名が指定されている場合はファイルのサイズを環境変数に代入します。/E:NAME のように /E に続けて環境変数名を指定してください。ファイルサイズの取得ができない場合、環境変数は空になります(削除されます)。環境変数に代入される最大サイズは4GBです(ERRORLEVELとは違い切り捨ては行なわれません)。

ファイル名の次に数値を指定すると、指定のファイルと数値を比較した結果をERRORLEVELに返します。指定できる最大の数値は65535です。

戻り値

ファイルサイズの取得:

  0 ～   65531	ファイルサイズの数値

65532	ファイルのサイズが65532以上

65533	指定のファイルが見つからない

65534	環境変数の領域が不足

65535	パラメータのエラー

ファイルサイズの比較:

  0	指定したサイズより小さい

  1	指定したサイズと等しい

  2	指定したサイズより大きい

65533	指定のファイルが見つからない

65535	パラメータのエラー

例

FILESIZE FILENAME.TXT

FILESIZE /K /E:SIZE FILENAME.TXT

FILESIZE /M FILENAME.TXT 10

参考

FILELINE

TIMESTAMP


WHICH
WHICH [/E:環境変数名] filename.exe

実行ファイルの存在を確認します。

ファイル名はカレント, WINDOWS, Windowsの SYSTEM, WinBatchEh 起動時に設定されていた環境変数 PATH のディレクトリ(16ビットバージョンでは WinBatchEh 内で設定した PATH は参照しません)を検索します。

ファイル名には拡張子を含めて指定する必要があります。ファイル名は実行可能ファイルでなくても構いません。

/E:環境変数名が指定されている場合は、ファイルのフルパス名を環境変数に代入します。/E:NAME のように /E に続けて環境変数名を指定してください。ファイルが存在しない場合、環境変数は空になります(削除されます)。

戻り値

  0	正常終了

  1	ファイルが存在しない

254	環境変数の領域が不足

255	パラメーターのエラー

例

WHICH CALC.EXE

WHICH /E:PATHNAME CALC.EXE


TEMPFILENAME
TEMPFILENAME [/P[:]Prefix] 環境変数名 [X:\PATH]

一時ファイル名を取得します。

Windowsが一時ファイルを作成するのと同じ規則で、一時ファイル名を取得して、環境変数に代入します。

ファイル名はフルパスで環境変数に代入されます。

ファイル名は時刻にもとづいた4文字のファイル名です。Windows3.1ではさらにファイル名の先頭に '~'(チルダ)が付けられます。

X:\PATHを指定すると、指定のドライブ、パスに作成する一時ファイル名を取得します。この指定がなければWindowsのデフォルトのディレクトリ(\WINDOWS\TEMPや32ビット版では環境変数TEMPの内容)が使用されます。

/Pに続けてPrefixを指定すると、Prefixに指定した文字列の先頭3文字が、一時ファイル名の前に付けられます(3文字より長い文字列を指定しても、3文字しか認識されません)。

なお、時刻を元にしているため、複数の一時ファイル名を1度に得ないようにしてください(ファイルが存在しなければ同名のファイルが出力される場合があります)。

一時ファイル名は環境変数に代入されるだけで実際には作成を行ないません。

ファイル名を取得できない場合は環境変数は空になります(削除されます)。

戻り値

ありません。

  0	正常終了

  1	エラー

255	パラメーターが不足

例

TEMPFILENAME TEMPNAME

TEMPFILENAME /P:ABC TEMPNAME

TEMPFILENAME /P:ABC TEMPNAME C:\TMP


SLEEPTIME
SLEEPTIME[=フラグ]

指定した秒数または状態になるまで動作を止めます。

SLEEPTIME のコマンド一覧

SLEEPTIME 秒数	指定した秒数動作を止めます。

SLEEPTIME ON	指定した時刻まで動作を止めます。

SLEEPTIME ACTIVE	バッチウィンドウがアクティブになるまで動作を止めます。

SLEEPTIME EXISTWINDOW	ウィンドウが存在する間(または存在しない間)動作を止めます。

ACTIVE以外の指定の時はフラグに KEYBREAK という指定を行なうと、待ち状態中でもキーまたはマウスの左ボタンが押されると、待ち状態を解除します。KEYBREAK を指定した場合は ERRORLEVEL に値が返りますが、指定しなかった場合には ERRORLEVEL は以前の値のままです。

SLEEPTIMEで待機している間、ハードウェアによっては、省電力モードに移行するパワーマネージメント機能などが使用できない場合があります。

SLEEPTIME 秒数[m]

指定した秒数動作を止めます。最後にmを付けるとミリ秒単位で、動作を止めますが、バッチ実行のオーバーヘッドがありますのであまりにも小さな単位での正確な動作は期待できません。

数値は最大65535まで指定可能です。

SLEEPTIME ON HH:MM:SS

指定した時刻になるまで動作を止めます。

時間の指定は24時間制でHH(時):MM(分):SS(秒)の順に行ないます(例 16:23:12)。

時刻の指定は任意の場所で省略ができます。省略した数値は0が代入されます(例 16:23と省略した場合16:23:00の指定と同じになります)。

SLEEPTIME ACTIVE

バッチ内容表示ウィンドウまたはバッチ実行ウィンドウがアクティブになるまで動作を止めます。コマンドを実行するときにすでにアクティブになっている場合はすぐに次の行に進むことになりますので、バックグランドで動作させている場合のみ意味を持ちます。

SLEEPTIME [NOT] EXISTWINDOW "ウィンドウタイトル"

SLEEPTIME [NOT] EXISTWINDOWR "ウィンドウタイトル"

指定されたウィンドウタイトルが存在する間動作を止めます。始めからウィンドウが存在しなければすぐに次の行に進みます。ウィンドウタイトルはこのコマンドを実行時のハンドルを取得して監視を行ないますのでウィンドウが破棄されるまで動作が止まります。つまりウィンドウタイトルがこのコマンド起動中に変更されても(例えばファイル名等)監視を続けることになります。

NOTを付けると、ウィンドウが存在しない間、動作を止めます。

EXISTWINDOWは指定されたウィンドウタイトルを前方一致または後方一致で検索して存在すれば続く文を実行します。タイトルの英大小文字と半角全角カタカナは同一視されます(タイトル検索の仕様)。

EXISTWINDOWRは指定されたウィンドウタイトルを正確なすべての文字列で検索して存在すれば続く文を実行します。英大小文字や半角全角カタカナも区別されます。例えばウィンドウタイトルに開いているファイル名が含まれる場合それも記述する必要があります。

もし、ウィンドウタイトルではなく、クラス名がわかっている場合"@クラス名" とすればクラス名に対する処理が行なえます。クラス名を指定する場合も英大小文字も比較されますし、この場合前方一致とはなりません。

ハンドル番号が分かっている場合、"$ハンドル番号" とすれば指定のハンドル番号を持つウィンドウに対する処理が行なえます。ハンドル番号は16進数で指定します。

戻り値

ありません。	(KEYBREAK未指定時)

  0	(KEYBREAK指定時)指定時間が経過

  1	(KEYBREAK指定時)マウスの左ボタンが押された

  3～ 255	(KEYBREAK指定時)押されたキーの仮想コード

例

SLEEPTIME 10

SLEEPTIME 500m

SLEEPTIME=KEYBREAK 60

SLEEPTIME ON 12:15

SLEEPTIME ACTIVE

SLEEPTIME EXISTWINDOW "メモ帳"

SLEEPTIME=KEYBREAK EXISTWINDOWR "メモ帳 - SETUP.TXT"

SLEEPTIME=KEYBREAK NOT EXISTWINDOW "電卓"

参考

IF (IF EXISTWINDOW)

FINDWND


ON ...
ON ....

メニューなどを選んだ場合に特別な処理を行ないます。

ON のコマンド一覧

ON STOP GOTO	[ストップ]時に指定のラベルにジャンプします。

ON ENDSESSION GOTO	Windowsが終了時に指定のラベルにジャンプします。

ON ABOUT MESSAGE	[About]を選択した時のメッセージを指定します。

ON HELP	[ヘルプ]を選択したときのファイルを指定します。

ON STOP GOTO ラベル

[ストップ]メニューを選択した場合に指定のラベルにジャンプします。

ラベル以降の処理はそのままバッチファイルを終了するようにしてください。また長い処理は行なわないでください。

バッチ内で他のバッチに制御を移した場合は無効になります。CALL文でバッチを呼び出した場合は、他のバッチが動作している間は無効になります。

ON STOP GOTO を指定すると、[ストップ]メニューの一度目の選択では[ストップ]メニューは選択可能状態のまま、指定のラベルにジャンプします。再度[ストップ]メニューを選択するとバッチが終了されます。

戻り値

ありません。

例

ON STOP GOTO LABEL

参考

GOTO

ON ENDSESSION GOTO ラベル

Windowsが終了しようとしたときに、指定のラベルにジャンプします。

必要な処理が終わったら、EXITWINDOWSコマンドを使用してWindowsを終了するようにしてください。終了せずにバッチを抜けた場合、Windowsは終了しません。

バッチ内で他のバッチに制御を移した場合は無効になります。CALL文でバッチを呼び出した場合は、他のバッチが動作している間は無効になります。

この指定を行なっているとき、WinBatchEhではWindowsシステムからの終了メッセージが発行されたときに、終了できないという返答を返します。返答を監視するソフトを使用してのWindows終了時には問題が発生するかも知れませんのでご注意ください。

戻り値

ありません。

例

ON ENDSESSION GOTO LABEL

参考

GOTO

EXITWINDOWS

ON ABOUT MESSAGE/MSG "メッセージ"

ON ABOUT MESSAGEF/MSGF "メッセージ"

[About]メニューを選択した場合に指定のメッセージを表示します。

メッセージはMESSAGEBOXと同じ形で表示が行なわれますが、フラグの指定などは行なえません。バッチ内で他のバッチに制御を移した場合でも指定は有効になります。

MESSAGE/MSGでは文字列をそのまま表示を行ないます。MESSAGEF/MSGFではPRINTF と同じ形式で\nなどのエスケープが使用できます(エスケープのみで%%dなどの引数は使用できません)。これにより文字列の途中で改行などを行なうことができます。

メッセージボックスのタイトルはバッチファイル名になります。

戻り値

ありません。

例

ON ABOUT MESSAGE "%0 Version 1.00"

ON ABOUT MESSAGEF "Version 1.00\nCopyright(C)1995 Y.Shimizu"

参考

MESSAGEBOX, MSGBOX

PRINTF

ON HELP [ヘルプファイル名]

[ヘルプ]メニューを選択した場合に指定のヘルプファイルを表示します。

"ON HELP ヘルプファイル名" を実行すると、[ヘルプ]メニューの[目次]を選んだ場合に、指定のファイルでWindows Helpを起動します。また、システムメニュー(コントロールメニュー)に [Help(&H)] が追加されます。

ファイル名はバッチ中でカレントパスが変わるならば、フルパスで指定する必要があります。

ファイル名を指定しなければ、通常のWinBatchEhのヘルプに戻ります。複数指定した場合、最後の指定が有効になります。

戻り値

ありません。

例

ON HELP C:\MYGOODS\SETUP.HLP


STR(文字列操作コマンド)
STR コマンド パラメータ

文字列操作を行ないます。

STRに続けて動作を行なうコマンド名を指定し、それぞれのコマンドに適応したパラメーターの指定も行なってください。

STR のコマンド一覧

STR LEN	文字列の長さを返します。

STR LEFT	文字列の左から指定の文字数を抜き出します。

STR RIGHT	文字列の右から指定の文字数を抜き出します。

STR MID	文字列の指定位置から指定の文字数を抜き出します。

STR UPR	文字列の英文字を大文字に変換します。

STR LWR	文字列の英文字を小文字に変換します。

STR CHR	文字列内で指定の文字が最初に現れる位置を探します。

STR RCHR	文字列内で指定の文字が最後に現れる位置を探します。

STR STR	文字列1内で文字列2が最初に現れる位置を探します。

STR ISTR(またはSTRI)	STRと同じですが英大小文字の区別をしません。

STR PBRK	文字列1内で文字列2内の文字が現れる位置を探します。

STR SPNP	文字列1内で文字列2内の該当しない文字が現れる位置を探します。

STR ADDSTR	文字列1内に文字列2が存在しなければ連結します。

STR ADDISTR(またはADDSTRI)	ADDSTRと同じですが英大小文字の区別をしません。

STR DELSTR	文字列1内に文字列2が存在すれば取り去ります。

STR DELISTR(またはDELSTRI)	DELSTRと同じですが英大小文字の区別をしません。

STR ADDBACKSLASH	文字列の最後がバックスラッシュ(\)でなければ付加します。

STR DELBACKSLASH	文字列の最後がバックスラッシュ(\)ならば削除します。

STR DELSPACE	文字列の前後にスペース文字があれば削除します。

STR CMP	文字列1内と文字列2を比較します。

STR ICMP(またはCMPI)	CMPと同じですが英大小文字の区別をしません。

STR NCMP	文字列1と文字列2を指定の文字数内で比較します。

STR NICMP(またはNCMPI)	NCMPと同じですが英大小文字の区別をしません。

STR コマンド解説

多くのコマンドではパラメータに指定された環境変数に結果を代入します。戻り値(ERRORLEVEL)には環境変数などに出力を行なった文字数が代入されます。STRでは環境変数の領域が足りなくてもエラーを返しません。

文字及び文字列を検索して結果を代入するコマンド(STR,CHRなど)では通常は検索で見つかった文字以降の代入を行ないますが、STRに続けてFRONTのフラグを指定(STR=FRONT ...)することにより、見つかった文字以前の文字列を代入することができます。

例えば、"STR CHR ENV ABCDEF D" は環境変数ENVに "DEF" が代入されますが、"STR=FRONT CHR ENV ABCDEF D" では "ABC" が代入されます。

一文字を指定するコマンド(CHRなど) での文字指定は、文字自身を直接指定するほかに、0xNN として16進指定もできます。また 'A' のようにシングルクォーテーションで囲っても構いません。

STR の各コマンドの詳細

STR LEN "文字列"

文字列の長さをERRORLEVELに返します。

例

STR LEN "ABCD"	(4が返される)

STR LEFT 環境変数名 "文字列" 抜き出す文字数

文字列の左から指定の文字数を抜き出して環境変数に代入を行ないます。

例

STR LEFT ENV "ABCDEFG" 3	("ABC"が代入される)

STR RIGHT 環境変数名 "文字列" 抜き出す文字数

文字列の右から指定の文字数を抜き出して環境変数に代入を行ないます。

例

STR RIGHT ENV "ABCDEFG" 3	("EFG"が代入される)

STR MID 環境変数名 "文字列" [開始位置],[抜き出す文字数]

文字列の指定位置から指定の文字数を抜き出して環境変数に代入を行ないます。

開始位置を省略すると先頭に、抜き出す文字数を省略すると残りの全文字数になります。

例

STR MID ENV "ABCDEFG" 3 2	("CD"が代入される)

STR MID ENV "ABCDEFG" ,2	("AB"が代入される)

STR MID ENV "ABCDEFG" 5	("EFG"が代入される)

STR UPR 環境変数名 "文字列"

文字列の英文字(半角の1byte文字)を大文字に変換して環境変数に代入を行ないます。

例

STR UPR ENV "AbCdE"	("ABCDE"が代入される)

STR LWR 環境変数名 "文字列"

文字列の英文字(半角の1byte文字)を小文字に変換して環境変数に代入を行ないます。

例

STR LWR ENV "AbCdE"	("abcde"が代入される)

STR[=FRONT] CHR 環境変数名 "文字列" 文字

文字列内で指定の文字が最初に現れる位置を探して、以降の文字列を環境変数に代入を行ないます。文字は英大小文字が区別されます。

例

STR CHR ENV "ABCDCEF" C	("CDCEF"が代入される)

STR=FRONT CHR ENV "ABCDCEF" C	("AB"が代入される)

STR[=FRONT] RCHR 環境変数名 "文字列" 文字

文字列内で指定の文字が最後に現れる位置を探して、以降の文字列を環境変数に代入を行ないます。文字は英大小文字が区別されます。

例

STR RCHR ENV "ABCDCEF" C	("CDEF"が代入される)

STR[=FRONT] STR 環境変数名 "文字列1" "文字列2"

文字列1内で文字列2の文字列が最初に現れる位置を探して、以降の文字列を環境変数に代入を行ないます。文字列は英大小文字が区別されます。

例

STR STR ENV "ABCDEF" "CDE"	("CDEF"が代入される)

STR[=FRONT] ISTR(またはSTRI) 環境変数名 "文字列1" "文字列2"

文字列1内で文字列2の文字列が最初に現れる位置を英大小文字を区別せずに探して、以降の文字列を環境変数に代入を行ないます。

例

STR ISTR ENV "ABCDEF" "cDe"	("CDEF"が代入される)

STR[=FRONT] PBRK 環境変数名 "文字列1" "文字列2"

文字列1内で文字列2内のいずれかの文字が最初に現れる位置を探して、以降の文字列を環境変数に代入を行ないます。文字列は英大小文字が区別されます。

例

STR PBRK ENV "ABCDEF" "CXZ"	("CDEF"が代入される)

STR[=FRONT] SPNP 環境変数名 "文字列1" "文字列2"

文字列1内で文字列2内のいずれの文字にも該当しない文字が最初に現れる位置を探して、以降の文字列を環境変数に代入を行ないます。文字列は英大小文字が区別されます。

例

STR SPNP ENV "ABCDEF" "ABCXZ"	("DEF"が代入される)

STR ADDSTR 環境変数名 "文字列1" "文字列2"

文字列1内で文字列2の文字列が最初に現れる位置を探して、存在しなければ文字列1に文字列2を連結して代入します。すでに存在する場合は文字列1をそのまま代入します。文字列は英大小文字が区別されます。

例

STR ADDSTR ENV "ABCD" "EFG"	("ABCDEFG"が代入される)

STR ADDSTR ENV "ABCD" "CD"	("ABCD"が代入される)

STR ADDISTR(またはADDSTRI) 環境変数名 "文字列1" "文字列2"

文字列1内で文字列2の文字列が最初に現れる位置を英大小文字を区別せずに探して、存在しなければ文字列1に文字列2を連結して代入します。すでに存在する場合は文字列1をそのまま代入します。

例

STR ADDISTR ENV "ABCD" "efG"	("ABCDefG"が代入される)

STR ADDISTR ENV "ABCD" "Cd"	("ABCD"が代入される)

STR DELSTR 環境変数名 "文字列1" "文字列2"

文字列1内で文字列2の文字列が最初に現れる位置を探して、存在すれば文字列1から文字列2を取り去って代入します。存在しない場合は文字列1をそのまま代入します。文字列は英大小文字が区別されます。

例

STR DELSTR ENV "ABCD" "EFG"	("ABCD"が代入される)

STR DELSTR ENV "ABCDE" "CD"	("ABE"が代入される)

STR DELISTR(またはDELSTRI) 環境変数名 "文字列1" "文字列2"

文字列1内で文字列2の文字列が最初に現れる位置を英大小文字を区別せずに探して、存在すれば文字列1から文字列2を取り去って代入します。存在しない場合は文字列1をそのまま代入します。文字列は英大小文字が区別されます。

例

STR DELISTR ENV "ABCD" "efG"	("ABCD"が代入される)

STR DELISTR ENV "ABCDE" "Cd"	("ABE"が代入される)

STR ADDBACKSLASH 環境変数名 "文字列"

文字列を環境変数に代入しますが、文字列の最後がバックスラッシュ(\)でなければ付加した文字列を代入します。

例

STR ADDBACKSLASH ENV "C:\USR"	("C:\USR\"が代入される)

STR ADDBACKSLASH ENV "C:\USR\"	("C:\USR\"が代入される)

STR DELBACKSLASH 環境変数名 "文字列"

文字列を環境変数に代入しますが、文字列の最後がバックスラッシュ(\)ならばその文字を削除した文字列を代入します。

例

STR DELBACKSLASH ENV "C:\USR"	("C:\USR"が代入される)

STR DELBACKSLASH ENV "C:\USR\"	("C:\USR"が代入される)

STR DELSPACE 環境変数名 "文字列"

文字列の前後にスペース文字(半角/全角の空白とタブ)があれば、スペース文字を削除して、環境変数に代入します。

例

STR DELSPACE ENV "  File Name  "	("File Name"が代入される)

STR CMP "文字列1" "文字列2"

文字列1内と文字列2を比較して同じならば0を、違えば1を返します。文字列は英大小文字が区別されて比較されます。

例

STR CMP "ABCDEF" "ABCDEF"	(0が返される)

STR ICMP(またはCMPI) "文字列1" "文字列2"

文字列1と文字列2を英大小文字を区別せずに比較して同じならば0を、違えば1を返します。

例

STR ICMP "ABCDEF" "Abcdef"	(0が返される)

STR NCMP "文字列1" "文字列2" 文字数

文字列1と文字列2を指定の文字数内で比較して同じならば0を、違えば1を返します。文字列は英大小文字が区別されます。

例

STR NCMP "ABCDEF" "ABCD" 4	(0が返される)

STR NICMP(またはNCMPI) "文字列1" "文字列2" 文字数

文字列1と文字列2を英大小文字を区別せずに指定の文字数内で比較して同じならば0を、違えば1を返します。

例

STR NICMP "ABCDEF" "Abcd" 4	(0が返される)


DRV(ドライブ情報取得コマンド)
DRV コマンド [ドライブ名]

ドライブ情報の取得を行ないます。

DRVに続けて動作を行なうコマンド名を指定してください。さらにドライブ名を指定すると指定のドライブの情報の取得になります。ドライブ名を指定しなければカレントドライブの情報を取得します。ドライブ名の指定は先頭の1文字のみを使用しますのでコロンやパス名が後に続いても無視します。

DRV のコマンド一覧

DRV TYPE	ドライブのタイプを取得します。

DRV READ	ドライブの読み取りチェックを行ないます。

DRV WRITE	ドライブの書き込みチェックを行ないます。

DRV LABEL	ボリュームラベルの表示、比較を行ないます。

DRV TYPE [ドライブ名]

ドライブのタイプを取得します。但し、ハードディスクかRAMディスクの判断、ネットワークかCD-ROMの判断は、環境により正しく返らない場合があります。

戻り値

  0, 1	ドライブ情報を取得できない

  2	フロッピーなどのリムーバブルディスク

  3	ハードディスクなどの交換不可能なディスク

  4	ネットワークドライブ

  5	CD-ROM

  6	RAMディスク

例

DRV TYPE C:

DRV READ [ドライブ名]

指定ドライブの読み込みが可能かチェックします。適当なファイルのオープンのテストを行ないます。

戻り値

  0	読み込み可能

  1	リードエラー

 10	ドライブの準備ができてない

 11	ユニットが存在しない

例

DRV READ C:

DRV WRITE [ドライブ名]

指定ドライブの書き込みが可能かチェックします。一時的なファイルをドライブに作成しすぐに削除するテストを行ないます。

戻り値

  0	書き込み可能

  1	リード、ライトエラー

  9	ライトプロテクトされている

 10	ドライブの準備ができてない

 11	ユニットが存在しない

例

DRV WRITE C:

DRV LABEL [/E[:]環境変数名] [ドライブ名][ラベル名]

ボリュームラベルの表示、名前の比較を行ないます。

ドライブ名が指定されなければカレントドライブの表示または比較になります。

ラベル名を指定しなければ、ボリュームラベルの表示を行ないます。

/E:環境変数名が指定されている場合は画面に表示せずに環境変数に代入します。/E:NAME のように /E に続けて環境変数名を指定してください。ボリュームラベルの取得ができない場合、環境変数は空になります(削除されます)。

ラベル名を指定するとボリュームラベルの比較を行なって結果をERRORLEVELに返します。ラベル名は英大小文字を同一視して比較します。

戻り値

  0	ラベルを正常表示、比較の結果が同じ

  1	比較の結果が違う

255	ボリュームラベルがない、ドライブのエラー

例

DRV LABEL

DRV LABEL /E:LNAME C:

DRV LABEL C:MS-DOS_6


FINDWND(ウィンドウ検索コマンド)
FINDWND[=フラグ] コマンド [パラメータ]

ウィンドウの検索または表示を行ないます。

FINDWNDに続けて動作を行なうコマンド名を指定し、それぞれのコマンドに適応したパラメーターの指定も行なってください。

FINDWNDでの検索は見つかったすべてのウィンドウやクラス名、ハンドル番号の結果を返します。一つのアプリケーションが複数の同じウィンドウタイトルまたはクラス名を返すことがあります。つまり複数の検索がヒットしても、複数の同一のアプリケーションが起動しているとは限りません。

ウィンドウタイトルを表示するコマンドを使用している場合、ウィンドウタイトルが入っていないアプリケーションはヒットしません。

FINDWNDでの検索ではパラメータにウィンドウタイトルを指定して検索が行なえます。ウィンドウタイトルの英大小文字と半角全角カタカナは同一視されます。ウィンドウタイトルは前方一致または後方一致で検索が行なわれます(タイトル検索の仕様)。

クラス名が分かっている場合、"@クラス名" とすればクラス名に対する処理が行なえます。クラス名を指定する場合も英大小文字も比較されますし、この場合前方一致とはなりません。

ハンドル番号が分かっている場合、"$ハンドル番号" とすれば指定のハンドル番号を持つウィンドウに対する処理が行なえます。ハンドル番号は16進数で指定します。

フラグに REAL を指定するとウィンドウタイトルは正確な検索が行なわれます。この場合英大小文字や半角全角カタカナも区別されますし、ファイル名が後に続く場合はその部分まで正確に記述する必要があります。

ウィンドウタイトルを指定しなければ、すべてのアプリケーションがヒットします。

FINDWND[=フラグ] TITLEFIRST [/E[:]環境変数名] ["ウィンドウタイトル"]

FINDWND TITLENEXT [/E[:]環境変数名]

FINDWND[=フラグ] CLASSFIRST [/E[:]環境変数名] ["ウィンドウタイトル"]

FINDWND CLASSNEXT [/E[:]環境変数名]

FINDWND[=フラグ] HANDLEFIRST [/E[:]環境変数名] ["ウィンドウタイトル"]

FINDWND HANDLENEXT [/E[:]環境変数名]

起動しているすべてのアプリケーションのウィンドウタイトル(TITLEFIRST/NEXT)またはクラス名(CLASSFIRST/NEXT)、ハンドル番号(HANDLEFIRST/NEXT)の検索を行ないます。検索した結果は画面に表示されます。

/E:環境変数名が指定されている場合は画面に表示せずに環境変数に代入します。/E:NAME のように /E に続けて環境変数名を指定してください。

検索は始めに xxxxxFIRST を必要ならウィンドウタイトルを指定して行ない、続けて検索を行なうならば xxxxxNEXT を行ないます(xxxxxNEXTではxxxxxFINDの結果に基づいて検索を行なうのでウィンドウタイトルの指定は必要ありません)。例えば次の様なバッチの流れになります。

FINDWND=REAL TITLEFIRST /E:NAME "WinBatchEh"

IF ERRORLEVEL 1 GOTO END

:LOOP

ECHO 見つけたタイトル... %NAME%

FINDWND TITLENEXT /E:NAME

IF NOT ERRORLEVEL 1 GOTO LOOP

:END

xxxxxFIRSTとxxxxxNEXTを行なう間にウィンドウの変化があると、正確に検索が行なえなくなります。

ERRORLEVELには取得できれば 0 を、取得できなければ 1 を返します。

/E:環境変数名を指定していて取得ができない場合、環境変数は空になります(削除されます)。

例

FINDWND TITLEFIRST /E:NAME"

FINDWND TITLEFIRST /E:TNAME "Win"

FINDWND TITLENEXT /E:TNAME

FINDWND=REAL CLASSFIRST "WinBatchEh - SAMPLE.BAT"

FINDWND HANDLEFIRST @WinBatchEhExec

FINDWND[=フラグ] TITLEDSP ["ウィンドウタイトル"]

FINDWND[=フラグ] CLASSDSP ["ウィンドウタイトル"]

FINDWND[=フラグ] HANDLEDSP ["ウィンドウタイトル"]

FINDWND[=フラグ] ALLDSP ["ウィンドウタイトル"]

検索を行なった結果ヒットしたすべてのアプリケーションのウィンドウタイトル(TITLEDSP)またはクラス名(CLASSDSP)、ハンドル番号(HANDLEDSP)、全情報(ALLDSP)の画面への表示を行ないます。

ERRORLEVELには表示したカウント数を返します。

例

FINDWND TITLEDSP "Win"

FINDWND=REAL CLASSDSP "WinBatchEh - SAMPLE.BAT"

FINDWND ALLDSP


GETCURSORPOS
GETCURSORPOS 環境変数(X) 環境変数(Y)

マウスカーソルの現在位置を取得します。

環境変数XとYにはそれぞれ画面上の座標値(スクリーン座標)が入ります。(例えば画面のサイズが 640×480 であれば 左上が X=0, Y=0、右下が X=639, Y=479 となります)。

戻り値

  0	正常終了

254	環境変数の領域が不足

例

GETCURSORPOS XPOS YPOS

参考

SETCURSORPOS

CLIPCURSOR


SETCURSORPOS
SETCURSORPOS[=フラグ] [/W[:]"ウィンドウタイトル"] X Y

マウスカーソルの位置を設定します。

XとYには画面上の座標値(スクリーン座標)を設定します。(例えば画面のサイズが 640×480 であれば 左上が X=0, Y=0、右下が X=639, Y=479 となります)。

画面のサイズを超えると画面上で一番大きな値の位置になります。

/Wを指定すると、指定のウィンドウの左隅からの位置にカーソル位置を設定します。/Wに続けてウィンドウタイトルを指定します。

ウィンドウタイトルの英大小文字と半角全角カタカナは同一視されます。ウィンドウタイトルは前方一致または後方一致で検索が行なわれます(タイトル検索の仕様)。

クラス名が分かっている場合、"@クラス名" とすればクラス名に対する処理が行なえます。クラス名を指定する場合も英大小文字も比較されますし、この場合前方一致とはなりません。

ハンドル番号が分かっている場合、"$ハンドル番号" とすれば指定のハンドル番号を持つウィンドウに対する処理が行なえます。ハンドル番号は16進数で指定します。

フラグに REAL を指定するとウィンドウタイトルは正確な検索が行なわれます。この場合英大小文字や半角全角カタカナも区別されますし、ファイル名が後に続く場合はその部分まで正確に記述する必要があります。

戻り値

  0	正常終了

253	指定のウィンドウが見つからない(/W指定時)

255	パラメーターが不足

例

SETCURSORPOS 320 240

SETCURSORPOS /W:電卓 120 240

SETCURSORPOS=REAL /W:"WinBatchEh - (無題)" 100 100

参考

GETCURSORPOS

CLIPCURSOR


CLIPCURSOR
CLIPCURSOR [LEFT TOP RIGHT BOTTOM]

マウスカーソルの移動可能な範囲を設定します。

移動可能とする範囲をスクリーンの座標(0～画面サイズ)で、LEFT(左)、TOP(上)、RIGHT(右)、BOTTOM(下)の順に、指定します。

コマンド実行後、マウスカーソルは指定範囲の左上の位置になります。

すべての座標の指定がなければ、移動範囲をデスクトップの大きさに戻します。

バッチが終了しても、移動可能な範囲の指定は継続したままになりますので、必要な処理が終わったら必ずデスクトップの大きさに範囲を戻してください。

戻り値

  0	正常終了

255	パラメーターが不足

例

CLIPCURSOR 100 200 200 400

CLIPCURSOR

参考

GETCURSORPOS

SETCURSORPOS


GETFOCUS
GETFOCUS [/T,/C,/H] 環境変数名

現在フォーカスが設定されたウィンドウの情報を取得します。

取得する内容はオプションで指定します。以下のオプションが指定できます。

/T      タイトル名を取得します。(デフォルト)

/C      クラス名を取得します。

/H      ハンドル番号を取得します。

オプションで指定した情報が環境変数に設定されます。

フォーカスが設定されたウィンドウが存在しない場合、ERRORLEVELに253が設定され、環境変数は空になります(削除されます)。

ウィンドウの情報が取得できない場合や、ウィンドウタイトルなどが設定されていない場合は、ERRORLEVELに0が設定され、環境変数は空になります(削除されます)。

戻り値

  0	正常終了

253	フォーカスが設定されたウィンドウが存在しない

254	環境変数の領域が不足

255	パラメーターが不足

例

GETFOCUS ENVNAME

GETFOCUS /C CLASSNAME

参考

SETFOCUS


SETFOCUS
SETFOCUS[=フラグ] ["ウィンドウタイトル"]

指定のウィンドウにフォーカスを設定します。

ウィンドウタイトルの英大小文字と半角全角カタカナは同一視されます。ウィンドウタイトルは前方一致または後方一致で検索が行なわれます(タイトル検索の仕様)。

クラス名が分かっている場合、"@クラス名" とすればクラス名に対する処理が行なえます。クラス名を指定する場合も英大小文字も比較されますし、この場合前方一致とはなりません。

ハンドル番号が分かっている場合、"$ハンドル番号" とすれば指定のハンドル番号を持つウィンドウに対する処理が行なえます。ハンドル番号は16進数で指定します。

フラグに REAL を指定するとウィンドウタイトルは正確な検索が行なわれます。この場合英大小文字や半角全角カタカナも区別されますし、ファイル名が後に続く場合はその部分まで正確に記述する必要があります。

ウィンドウタイトルの指定がなければ、現在実行中のバッチ実行ウィンドウにフォーカスを設定します(バッチ実行ウィンドウが表示状態のときのみ)。

フォーカスの設定されたウィンドウは、前面に表示されアクティブな状態になります。

戻り値

  0	正常終了

253	指定のウィンドウが見つからない

例

SETFOCUS=REAL "プログラム マネージャ"

参考

GETFOCUS

SHOWWINDOW


SHOWWINDOW
SHOWWINDOW[=フラグ] "ウィンドウタイトル" [状態名]

指定のウィンドウの状態を変更します。

ウィンドウタイトルの英大小文字と半角全角カタカナは同一視されます。ウィンドウタイトルは前方一致または後方一致で検索が行なわれます(タイトル検索の仕様)。

クラス名が分かっている場合、"@クラス名" とすればクラス名に対する処理が行なえます。クラス名を指定する場合も英大小文字も比較されますし、この場合前方一致とはなりません。

ハンドル番号が分かっている場合、"$ハンドル番号" とすれば指定のハンドル番号を持つウィンドウに対する処理が行なえます。ハンドル番号は16進数で指定します。

フラグに REAL を指定するとウィンドウタイトルは正確な検索が行なわれます。この場合英大小文字や半角全角カタカナも区別されますし、ファイル名が後に続く場合はその部分まで正確に記述する必要があります。

状態名の指定を行なう事によりウィンドウの状態を設定できます。状態名には以下のものを指定できます。(定義文字列を使用する場合は大文字で指定してください)。

<数値> <定義文字列>             <ウィンドウの状態>

指定なし                        ウィンドウ状態

0      SW_HIDE                  非表示

1      SW_NORMAL または         ウィンドウ状態

       SW_SHOWNORMAL            ウィンドウ状態

2      SW_SHOWMINIMIZED         アイコン状態

3      SW_MAXIMIZE または       最大化状態

       SW_SHOWMAXIMIZED         最大化状態

5      SW_SHOW                  アプリのデフォルトの大きさ

6      SW_MINIMIZE              非アクティブなアイコン状態

7      SW_SHOWMINNOACTIVE       非アクティブなアイコン状態

戻り値

  0	正常終了

253	指定のウィンドウが見つからない

255	パラメーターが不足

例

SHOWWINDOW=REAL "プログラム マネージャ" SW_MINIMIZE

参考

SETFOCUS


GETWINDOWRECT(GETWINDOW)
GETWINDOWRECT[=フラグ] "ウィンドウタイトル" 環境変数(X) 環境変数(Y) 環境変数(幅) 環境変数(高さ)

指定のウィンドウの位置及びサイズを取得します。

ウィンドウタイトルの英大小文字と半角全角カタカナは同一視されます。ウィンドウタイトルは前方一致または後方一致で検索が行なわれます(タイトル検索の仕様)。

クラス名が分かっている場合、"@クラス名" とすればクラス名に対する処理が行なえます。クラス名を指定する場合も英大小文字も比較されますし、この場合前方一致とはなりません。

ハンドル番号が分かっている場合、"$ハンドル番号" とすれば指定のハンドル番号を持つウィンドウに対する処理が行なえます。ハンドル番号は16進数で指定します。

フラグに REAL を指定するとウィンドウタイトルは正確な検索が行なわれます。この場合英大小文字や半角全角カタカナも区別されますし、ファイル名が後に続く場合はその部分まで正確に記述する必要があります。

ウィンドウが親ウィンドウ(トップレベルのウィンドウ)の場合X位置とY位置は画面全体の座標値(スクリーン座標)が使われます。(例えば画面のサイズが 640×480 であれば 左上が X=0, Y=0、右下が X=639, Y=479 となります)。

ウィンドウがダイアログボックスなどの子ウィンドウの場合座標は親ウィンドウの左上隅から始まります。

幅と高さはドット単位でのサイズです。

これらのそれぞれの数値が指定した環境変数に代入されます。

※以前のバージョンではGETWINDOWとしていましたが、紛らわしいためコマンド名をGETWINDOWRECTに変更しています。GETWINDOWでも同様の動作が行なえます。

戻り値

ありません。

  0	正常終了

253	指定のウィンドウが見つからない

254	環境変数の領域が不足

255	パラメーターのエラー

例

GETWINDOWRECT "プログラム" ENVX ENVY ENVR ENDB

GETWINDOWRECT=REAL "プログラム マネージャ" ENVX ENVY ENVR ENDB

参考

SETWINDOWRECT

SETWINDOWPOS


SETWINDOWRECT(SETWINDOW)
SETWINDOWRECT[=フラグ] "ウィンドウタイトル" [X位置],[Y位置],[幅],[高さ]

指定のウィンドウの位置及びサイズを設定します。

ウィンドウタイトルの英大小文字と半角全角カタカナは同一視されます。ウィンドウタイトルは前方一致または後方一致で検索が行なわれます(タイトル検索の仕様)。

クラス名が分かっている場合、"@クラス名" とすればクラス名に対する処理が行なえます。クラス名を指定する場合も英大小文字も比較されますし、この場合前方一致とはなりません。

ハンドル番号が分かっている場合、"$ハンドル番号" とすれば指定のハンドル番号を持つウィンドウに対する処理が行なえます。ハンドル番号は16進数で指定します。

フラグに REAL を指定するとウィンドウタイトルは正確な検索が行なわれます。この場合英大小文字や半角全角カタカナも区別されますし、ファイル名が後に続く場合はその部分まで正確に記述する必要があります。

ウィンドウが親ウィンドウ(トップレベルのウィンドウ)の場合X位置とY位置は画面全体の座標値(スクリーン座標)が使われます。(例えば画面のサイズが 640×480 であれば 左上が X=0, Y=0、右下が X=639, Y=479 となります)。

ウィンドウがダイアログボックスなどの子ウィンドウの場合座標は親ウィンドウの左上隅から始まります。

幅と高さはドット単位でのサイズを指定します。この値にはタイトルバーなどの寸法も含まれます。

数値は空白またはカンマ(,)で区切ります。X位置以降は必要がなければ省略することができます。カンマで区切った場合は部分的に数値を省略することができ、その場合省略した数値は元の値のままになります。これを利用して例えばサイズのみを変更することもできます。

配列順序も変更したい場合は、SETWINDOWPOSを使用してください。

※以前のバージョンではSETWINDOWとしていましたが、紛らわしいためコマンド名をSETWINDOWRECTに変更しています。SETWINDOWでも同様の動作が行なえます。

戻り値

ありません。

  0	正常終了

253	指定のウィンドウが見つからない

255	パラメーターのエラー

例

SETWINDOWRECT=REAL "プログラム マネージャ" 0,0,640,480

SETWINDOWRECT=REAL "プログラム マネージャ" ,,100,100

SETWINDOWRECT "プログラム" 100 100

参考

GETWINDOWRECT

SETWINDOWPOS


SETWINDOWPOS
SETWINDOWPOS[=フラグ] "ウィンドウタイトル" [配置順序],[X位置],[Y位置],[幅],[高さ],[調整フラグ]

指定のウィンドウの配列順序、位置及びサイズ、調整フラグを設定します。

ウィンドウタイトルの英大小文字と半角全角カタカナは同一視されます。ウィンドウタイトルは前方一致または後方一致で検索が行なわれます(タイトル検索の仕様)。

クラス名が分かっている場合、"@クラス名" とすればクラス名に対する処理が行なえます。クラス名を指定する場合も英大小文字も比較されますし、この場合前方一致とはなりません。

ハンドル番号が分かっている場合、"$ハンドル番号" とすれば指定のハンドル番号を持つウィンドウに対する処理が行なえます。ハンドル番号は16進数で指定します。

フラグに REAL を指定するとウィンドウタイトルは正確な検索が行なわれます。この場合英大小文字や半角全角カタカナも区別されますし、ファイル名が後に続く場合はその部分まで正確に記述する必要があります。

配置順序の指定を行なう事によりウィンドウの配列順序を設定できます。配列順序には以下のものを指定できます。定義文字列を使用してください(定義文字列は大文字で指定してください)。

<定義文字列>    <配列の順序>

HWND_TOP	ウィンドウを上位(前面)に配置します。

HWND_BOTTOM	ウィンドウを最下位(後面)に配置します。

HWND_TOPMOST	ウィンドウを常に最前面に配置します。

HWND_NOTOPMOST	最前面のウィンドウを通常状態(前面)に配置します。

X位置とY位置はウィンドウの左上が位置する座標を指定します。

ウィンドウが親ウィンドウ(トップレベルのウィンドウ)の場合X位置とY位置は画面全体の座標値(スクリーン座標)が使われます。(例えば画面のサイズが 640×480 であれば 左上が X=0, Y=0、右下が X=639, Y=479 となります)。

ウィンドウがダイアログボックスなどの子ウィンドウの場合座標は親ウィンドウの左上隅から始まります。

幅と高さはドット単位でのサイズを指定します。この値にはタイトルバーなどの寸法も含まれます。

調整フラグの指定を行なう事によりウィンドウの調整ができます。調整フラグには以下のものを指定できます。調整フラグは複数の指定を組み合わせて指定することができます。数値または定義文字列が使用できます(定義文字列を使用する場合は大文字で指定してください)。

<数値> <定義文字列>             <調整内容>

0x0001 SWP_NOSIZE	幅と高さの指定を無視します。

0x0002 SWP_NOMOVE	X位置とY位置の指定を無視します

0x0004 SWP_NOZORDER	配列順序の指定を無視します。

0x0008 SWP_NOREDRAW	ウィンドウ内容が変更されても再描画しません。

0x0010 SWP_NOACTIVATE	ウィンドウをアクティブ化しません。

0x0020 SWP_FRAMECHANGED または	ウィンドウを囲む枠を描画します。

       SWP_DRAWFRAME

0x0040 SWP_SHOWWINDOW	ウィンドウを表示状態にします。

0x0080 SWP_HIDEWINDOW	ウィンドウを非表示にします。

SWP_SHOWWINDOWまたはSWP_HIDEWINDOWを設定したときは、ウィンドウを移動したりサイズ変更したりできません。

SWP_NOACTIVATEまたはSWP_NOZORDERが指定されないときは、

数値は空白またはカンマ(,)で区切ります。配列順序以降は必要がなければ省略することができますが、ウィンドウによっては省略するとデフォルトの値が適用されるために設定が変更される場合があります。

位置及びサイズを変更するだけの時は、SETWINDOWRECTを使用してください。

戻り値

ありません。

  0	正常終了

  1	エラー

253	指定のウィンドウが見つからない

255	パラメーターが不足

例

SETWINDOWPOS "WinBatchEh -" HWND_TOPMOST

SETWINDOWPOS "WinBatchEh -" HWND_TOP,10,0,640,480,SWP_DRAWFRAME

参考

SETWINDOWRECT

GETWINDOWRECT


MESSAGEBOX, MSGBOX
MESSAGEBOX[=フラグ] [/T[:]"タイトル"] [文字列]

MSGBOX[=フラグ] [/T[:]"タイトル"] [文字列]

メッセージボックスの表示を行ないます。次のようなウィンドウです。

フラグの指定によって以下のような動作を行ないます。数値はすべて16進数です。(定義文字列を使用する場合は大文字で指定してください)。

ボタン表示の指定:

<数値> <定義文字列>             <表示されるボタン>

指定なし                        [OK]

0x0000 MB_OK                    [OK]

0x0001 MB_OKCANCEL              [OK] [ｷｬﾝｾﾙ]

0x0002 MB_ABORTRETRYIGNORE      [中止] [再試行] [無視]

0x0003 MB_YESNOCANCEL           [はい] [いいえ] [ｷｬﾝｾﾙ]

0x0004 MB_YESNO                 [はい] [いいえ]

0x0005 MB_RETRYCANCEL           [再試行] [ｷｬﾝｾﾙ]

アイコン表示の指定:

<数値> <定義文字列>             <表示されるアイコン>

指定なし                        なし

0x0010 MB_ICONSTOP または       (STOP)

       MB_ICONHAND              (STOP)

0x0020 MB_ICONQUESTION          (?)

0x0030 MB_ICONEXCLAMATION       (!)

0x0040 MB_ICONASTERISK または   (i)

       MB_ICONINFORMATION       (i)

デフォルトボタンの指定:

<数値> <定義文字列>             <デフォルトのボタン>

指定なし                        1つめのボタンがデフォルト

0x0000 MB_DEFBUTTON1            1つめのボタンがデフォルト

0x0100 MB_DEFBUTTON2            2つめのボタンをデフォルト

0x0200 MB_DEFBUTTON3            3つめのボタンをデフォルト

応答中の他のアプリケーションの動作の停止指定:

<数値> <定義文字列>             <停止させるアプリ>

指定なし                        影響なし

0x0000 MB_APPLMODAL             影響なし

0x1000 MB_SYSTEMMODAL           すべてのアプリ

0x2000 MB_TASKMODAL             (現在意味なし)このアプリ

表示文字列の指定:

<数値> <定義文字列>             <表示文字列の指定>

指定なし                        文字列をそのまま表示

0x4000 MB_FORMAT                文字列に\nなどのエスケープを適用する

また、ボタンの応答により以下のERRORLEVELを返します。ERRORLEVELの比較は数値だけではなく、定義文字列と比較する事も可能です。

<数値> <ボタン>         <定義文字列>

1      [OK]             IDOK

2      [ｷｬﾝｾﾙ]          IDCANCEL

3      [中止]           IDABORT

4      [再試行]         IDRETRY

5      [無視]           IDIGNORE

6      [はい]           IDYES

7      [いいえ]         IDNO

複数の動作を組み合わせて指定することも可能です。例えば次の3行はすべて同じ動作を行ないます。

MESSAGEBOX=0x0124 よろしいですか?

MESSAGEBOX=0x0004+0x0100+0x0020 よろしいですか?

MESSAGEBOX=MB_YESNO+MB_DEFBUTTON2+MB_ICONQUESTION よろしいですか?

MB_FORMATを指定した場合 PRINTF と同じ形式で\nなどのエスケープが使用できます(エスケープのみで%%dなどの引数は使用できません)。これにより文字列の途中で改行などを行なうことができます。

/Tでのタイトルにはウィンドウのタイトルを指定します。/T:"Window Title" のようにタイトルを "" で囲って指定してください。指定がなければバッチファイル名がタイトルになります。

戻り値

  1 ～   7	押されたボタンの値

例

MESSAGEBOX=0x0004 続けますか?

IF ERRORLEVEL 7 GOTO END

MESSAGEBOX=MB_YESNO 続けますか?

IF ERRORLEVEL IDNO GOTO END

MESSAGEBOX=MB_YESNO /T:"処理の続行" 続けますか?

IF %ERRORLEVEL%==IDNO GOTO END

参考

MESSAGEBEEP, MSGBEEP

NONSTOPMESSAGE, NONSTOPMSG

PRINTF


0x0010 MB_ICONSTOP, MB_ICONHAND


0x0020 MB_ICONQUESTION


0x0030 MB_ICONEXCLAMATION


0x0040 MB_ICONASTERISK, MB_ICONINFORMATION


MESSAGEBEEP, MSGBEEP
MESSAGEBEEP [数値]

MSGBEEP [数値]

サウンドを再生します。MESSAGEBEEPに続けて数値を指定することによりサウンドの設定で指定されたサウンドが再生されます。

数値はすべて16進数です。(定義文字列を使用する場合は大文字で指定してください)。

<数値> <定義文字列>             <再生されるサウンド>

指定なし                        SystemDefault, 一般の警告音

0x0000 MB_OK                    SystemDefault, 一般の警告音

0x0010 MB_ICONSTOP または       SystemHand, システム エラー

       MB_ICONHAND              SystemHand, システム エラー

0x0020 MB_ICONQUESTION          SystemQuestion, 問い合わせ

0x0030 MB_ICONEXCLAMATION       SystemExclamation, 警告

0x0040 MB_ICONASTERISK または   SystemAsterisk, 情報

       MB_ICONINFORMATION       SystemAsterisk, 情報

戻り値

ありません。

例

MESSAGEBEEP 0x0030

MESSAGEBEEP MB_ICONEXCLAMATION

参考

MESSAGEBOX, MSGBOX

SNDPLAYSOUND


 音のテスト

SystemDefault, 一般の警告音


 音のテスト

SystemHand, システム エラー


 音のテスト

SystemQuestion, 問い合わせ


 音のテスト

SystemExclamation, 警告


 音のテスト

SystemAsterisk, 情報


NONSTOPMESSAGE, NONSTOPMSG
NONSTOPMESSAGE[=フラグ] [/Y] [/U] [/T[:]"タイトル"] [/M[:]"ボタン文字列"] [/WP[:][ウインドウ横位置],[縦位置]] [/WS[:][ウィンドウの幅],[高さ]] [/F[:]"フォント名"] [/FS[:]フォントの高さ[,幅]] [文字列]

NONSTOPMSG[=フラグ] [/Y] [/U] [/T[:]"タイトル"] [/M[:]"ボタン文字列"] [/WP[:][ウインドウ横位置],[縦位置]] [/WS[:][ウィンドウの幅],[高さ]] [/F[:]"フォント名"] [/FS[:]フォントの高さ[,幅]] [文字列]

バッチの処理を続けたままメッセージを表示します。MESSAGEBOXと似ていますが、メッセージの表示後すぐにバッチに復帰し、処理を続ける点が違います。表示されるウィンドウは次のようになります。

フラグの指定によって以下のような動作を行ないます。数値はすべて16進数です。(定義文字列を使用する場合は大文字で指定してください)。

表示文字列の指定:

<数値> <定義文字列>             <表示文字列の指定>

指定なし                        文字列をそのまま表示

0x4000 MB_FORMAT                文字列に\nなどのエスケープを適用する

MB_FORMATを指定した場合 PRINTF と同じ形式で\nなどのエスケープが使用できます(エスケープのみで%%dなどの引数は使用できません)。これにより文字列の途中で改行などを行なうことができます。

MESSAGEBOX と違い、アイコンなどは指定できません。

以下のオプションが指定できます(オプション及び文字列とオプションの間はスペースを空けてください)。

/Y           ウィンドウを常に前面に表示します。

/U           ボタンを表示しません。

/T:"文字列"  ウィンドウタイトルの指定を行ないます(デフォルトはバッチファイル名)。

/M:"文字列"  メッセージ欄に表示するメッセージを指定します(デフォルトは「中止」)。

/WP:横,縦    ウィンドウの横、縦の位置をスクリーンサイズで指定します(デフォルトは中央)。

/WS:幅,高さ  ウィンドウの横、縦のサイズをスクリーンサイズで指定します(デフォルト472x214)。

/F:"FONT名"  表示内容のフォントを変更する場合にフォント名を指定します(デフォルトはSystemフォント)。

/FS:高さ,幅  フォント名を指定した場合に必要ならばフォントのサイズを指定します。

/Yを指定すると、ウィンドウが常に他のウィンドウより前面に表示されるようになります。

/Uを指定すると、ボタンの表示が行なわれません。

/Tでのタイトルにはウィンドウのタイトルを指定します。/T:"Window Title" のようにタイトルを "" で囲って指定してください。指定がなければバッチファイル名がタイトルになります。

/Mでのメッセージには、ボタンに表示するメッセージを指定します。/M:"完了" のようにメッセージを "" で囲って指定してください。指定がなければ「中止」が表示されます。あまり長いメッセージを指定するとボタンに収まらなくなります(最大で半角12文字程度です)。

/WPに続けて横位置と縦位置を指定すると、ウィンドウの位置を変更する事ができます。/WP:100,200 のように、/WPに続けて横と縦の位置のドット数をカンマ(',')で区切って指定してください(間にスペース等は入れないでください)。横または縦のどちらか一方だけを指定すると、両方同じ値として計算されます。指定がなければデスクトップの中央に表示されます。

/WSに続けて幅と高さを指定すると、ウィンドウのサイズを変更する事ができます。/WS:640,400 のように、/WSに続けて幅と高さのドット数をカンマ(',')で区切って指定してください(間にスペース等は入れないでください)。幅または高さのどちらかを省略すると、20対9の割合で、指定しなかった方のサイズは自動的に計算されます。指定がなければ横472、縦214(環境によってはタイトルバーの高さが違うため若干の誤差があります)のサイズになります。

/Fを指定するとファイル内容表示のフォントを変更することができます。/F:"ＭＳ Ｐ明朝" のように、/F に続けてフォント名を "" で囲って指定してください。指定がなければシステムフォントが使用されます。

さらに、/FSを指定すると、フォントの高さと幅を指定できます。/FS:18,10 のように、/FSに続けて高さと幅をカンマ(',')で区切って指定してください(間にスペース等は入れないでください)。高さのみを指定して幅を省略すると、幅は自動的に計算されます。指定がなければシステムのデフォルトの大きさになります。

文字列が長い場合は適当なところで次の行に折り返しますが、内容によってはみ出して表示されない場合があります。また、表示を行なえる行数は、デフォルトの状態で5行程度です。

文字列が全く指定されなければ、以前表示されていたウィンドウがあれば消去されます(以前表示されていたウィンドウがなければ無動作です)。文字列が指定されて、以前表示されていたウィンドウが存在する場合は、一旦以前のウィンドウが消去された後、新たなウィンドウが作成されます。

なお、別の WinBatchEh を起動して、ウィンドウを表示した場合は、それぞれの WinBatchEh でウィンドウが作成されるため、ウィンドウが複数表示されます。

ボタンを押すと、[ストップ]を押したときと同じ動作が行なわれます("ON STOP GOTO" が指定されて無ければバッチファイルが終了します)。ボタンはキーボードのリターンキーでは押すことができません(スペースキーでは押すことができます)。

バッチが終了するとウィンドウは自動的に消去されます。

戻り値

ありません。

  0	正常終了

255	パラメーターのエラー

例

NONSTOPMESSAGE 処理中です

NONSTOPMESSAGE /T:"処理経過" /M:"ストップ" C:\FILE1.DAT D:\FILE2.DAT

NONSTOPMESSAGE=MB_FORMAT /U コピー中です\nお待ちください...

NONSTOPMESSAGE /M:"待つのは嫌" /WP:100,200 しばらくお待ちください...

NONSTOPMESSAGE /M:"待つのは嫌" /WS:400,150 /F:"ＭＳ 明朝" /FS:30 待っているんだ

参考

MESSAGEBOX, MSGBOX

DISPLAYBMP

PRINTF

ON STOP GOTO


DISPLAYTXT
DISPLAYTXT[=フラグ] [/Y] [/N] [/U] [/T[:]"タイトル"] [/M[:]"メッセージ"] [/WP[:][ウインドウ横位置],[縦位置]] [/WS[:][ウィンドウの幅],[高さ]] [/O[:]タイムアウト秒] [/F[:]"フォント名"] [/FS[:]フォントの高さ[,幅]] [/E] [-] TXTファイル名

テキストファイル(TXT)の表示を行なって、応答を待ちます。次のようなウィンドウです。

フラグの指定によってボタン表示の指定を行なう事ができます。数値はすべて16進数です。(定義文字列を使用する場合は大文字で指定してください)。

<数値> <定義文字列>             <表示されるボタン>

指定なし                        [OK]

0x0000 MB_OK                    [OK]

0x0001 MB_OKCANCEL              [OK] [ｷｬﾝｾﾙ]

0x0002 MB_ABORTRETRYIGNORE      [中止] [再試行] [無視]

0x0003 MB_YESNOCANCEL           [はい] [いいえ] [ｷｬﾝｾﾙ]

0x0004 MB_YESNO                 [はい] [いいえ]

0x0005 MB_RETRYCANCEL           [再試行] [ｷｬﾝｾﾙ]

ボタンの応答により以下のERRORLEVELを返します。ERRORLEVELの比較は数値だけではなく、定義文字列と比較する事も可能です。

<数値> <ボタン>         <定義文字列>

1      [OK]             IDOK

2      [ｷｬﾝｾﾙ]          IDCANCEL

3      [中止]           IDABORT

4      [再試行]         IDRETRY

5      [無視]           IDIGNORE

6      [はい]           IDYES

7      [いいえ]         IDNO

また、以下のオプションが指定できます(オプション及び文字列とオプションの間はスペースを空けてください)。

/Y           ウィンドウを常に前面に表示します。

/N           表示後バッチに復帰します。ボタンを表示しません。

/U           表示後バッチに復帰します。ボタンは[中止]ボタンが表示されます。

/T:"文字列"  ウィンドウタイトルの指定を行ないます(デフォルトは "Display Text")。

/M:"文字列"  メッセージ欄に表示するメッセージを指定します(デフォルトは表示なし)。

/WP:横,縦    ウィンドウの横、縦の位置をスクリーンサイズで指定します(デフォルトは中央)。

/WS:幅,高さ  ウィンドウの横、縦のサイズをスクリーンサイズで指定します(デフォルト560x420)。

/O:数値      タイムアウト秒を指定します。

/F:"FONT名"  表示内容のフォントを変更する場合にフォント名を指定します(デフォルトはSystemフォント)。

/FS:高さ,幅  フォント名を指定した場合に必要ならばフォントのサイズを指定します。

/E           ボタンのメッセージを英語にします。

-            ファイルではなく以降の文字列を表示します。

/Yを指定すると、ウィンドウが常に他のウィンドウより前面に表示されるようになります。

/Uまたは/Nを指定すると、ウィンドウを表示後すぐにバッチに復帰します。/U はボタンの表示が行なわれません。/N は [中止] ボタンを表示します(ボタンを押すと、[ストップ]を押したときと同じ動作が行なわれます。"ON STOP GOTO" が指定されて無ければバッチファイルが終了します)。再度DISPLAYTXTを呼び出すと以前表示されていたウィンドウは消去されます(ファイル名を指定しなければ消去のみが行なわれます)。

/Tでのタイトルにはウィンドウのタイトルを指定します。/T:"Window Title" のようにタイトルを "" で囲って指定してください。指定がなければ "Display Text" がタイトルになります。

/Mでのメッセージには、メッセージを指定します。/M:"Message String" のようにメッセージを "" で囲って指定してください。指定がなければ何も表示されません。

/WPに続けて横位置と縦位置を指定すると、ウィンドウの位置を変更する事ができます。/WP:100,200 のように、/WPに続けて横と縦の位置のドット数をカンマ(',')で区切って指定してください(間にスペース等は入れないでください)。横または縦のどちらか一方だけを指定すると、両方同じ値として計算されます。指定がなければデスクトップの中央に表示されます。

/WSに続けて幅と高さを指定すると、ウィンドウのサイズを変更する事ができます。/WS:640,400 のように、/WSに続けて幅と高さのドット数をカンマ(',')で区切って指定してください(間にスペース等は入れないでください)。幅または高さのどちらかを省略すると、4対3の割合で、指定しなかった方のサイズは自動的に計算されます。指定がなければ横560、縦420(環境によってはタイトルバーの高さが違うため若干の誤差があります)のサイズになります。

/Oを指定すると、指定の秒数が経過しても選択が行なわれなかった場合自動的にウィンドウが閉じるようになります。このとき戻り値(ERRORLEVEL)は0になります。/O:20 のように、/O に続けてタイムアウト時間を秒数で指定してください。タイムアウト時間は1～60秒まで指定できます。

/Fを指定するとファイル内容表示のフォントを変更することができます。/F:"ＭＳ Ｐ明朝" のように、/F に続けてフォント名を "" で囲って指定してください。指定がなければシステムフォントが使用されます。

さらに、/FSを指定すると、フォントの高さと幅を指定できます。/FS:18,10 のように、/FSに続けて高さと幅をカンマ(',')で区切って指定してください(間にスペース等は入れないでください)。高さのみを指定して幅を省略すると、幅は自動的に計算されます。指定がなければシステムのデフォルトの大きさになります。

/Eを指定すると、ボタンのメッセージが英語になります。指定がなければ日本語で表示されます。

ファイル名の代わりに、先頭に -(マイナス)を指定すると、以降の文字列をそのまま表示します。このとき、フラグに MB_FORMAT を指定していれば、\n の指定で表示内容を改行することができます。

扱えるテキストファイルは最大32KBのサイズです。これを超える大きさの場合、超えた部分は表示されません。ファイル内に改行コード(CRとLF)が含まれる場合は、そこで画面の表示内容も改行が行なわれます。

※以前のバージョンではサイズの指定を/X(幅)と/Y(高さ)で指定するようになっていましたが/WSに変更になりました(但し、このバージョンでは /X, /Yでの指定も有効です)。

戻り値

  0	タイムアウト時間が経過した

  1 ～   7	リターン値

250	指定のファイルが見つからない

252	メモリーが不足

255	パラメーターのエラー

例

DISPLAYTXT README.TXT

DISPLAYTXT /T:注意書き /M:以下の事に注意してください NOTE.TXT

DISPLAYTXT=MB_YESNO /T:"Title" /M:"Message" /WS:640 FILE.TXT

DISPLAYTXT=MB_OKCANCEL /T:"Title" /M:"Message" /WS:640,400 /O:10 /E FILE.TXT

DISPLAYTXT /F:"ＭＳ Ｐ明朝" /FS:18,10 FNAME.TXT

DISPLAYTXT=MB_RETRYCANCEL+MB_FORMAT - エラーが起きました。\nどうしますか?

参考

MESSAGEBOX, MSGBOX

NONSTOPMESSAGE, NONSTOPMSG

DISPLAYBMP

ON STOP GOTO


DISPLAYBMP
DISPLAYBMP [/Y] [/B] BMPファイル名

ビットマップファイル(BMP)の表示を行ないます。ビットマップの表示後すぐにバッチに復帰し、処理を続けます。

主にバッチファイルのオープニングなどをビットマップで作った場合に表示することを目的としています(画像の観賞用ではありません:-)。

以下のオプションが指定できます(オプション及び文字列とオプションの間はスペースを空けてください)。

/Y           ウィンドウを常に前面に表示します。

/B           ウィンドウの枠(Border)を表示します。

/Yを指定すると、ウィンドウが常に他のウィンドウより前面に表示されるようになります。

/Bを指定すると、ビットマップ表示の枠を表示します。

BMPファイル名が指定されなければ、以前表示されていたウィンドウがあれば消去されます(以前表示されていたウィンドウがなければ無動作です)。BMPファイル名が指定されて、以前表示されていたウィンドウが存在する場合は、一旦以前のウィンドウが消去された後、新たなウィンドウが作成されます。

なお、別の WinBatchEh を起動して、ウィンドウを表示した場合は、それぞれの WinBatchEh でウィンドウが作成されるため、ウィンドウが複数表示されます。

ビットマップは元々作成された大きさで、画面の中央に表示されます。

BMPファイルは形式によっては扱えないことがあります。また、減色処理などは行なっていませんので、画面表示色よりも色数が多いファイルは、きれいに表示されません。

バッチが終了するとウィンドウは自動的に消去されます。

戻り値

  0	正常終了

  1	ファイルが見つからない, ファイルの読み込みエラー

例

DISPLAYBMP C:\WINDOWS\WINLOGO.BMP

参考

NONSTOPMESSAGE, NONSTOPMSG

DISPLAYTXT


SNDPLAYSOUND
SNDPLAYSOUND[=フラグ] [サウンドファイル名またはエントリ名]

指定されたWAVファイルまたはサウンド設定で指定されたファイルの再生を行ないます。指定されたファイルがまたはエントリ見つからない場合は SystemDefault(一般の警告音)が再生されます。

通常レジストリデータ(Windows 3.1ではWIN.INIの[sounds]セクション)には次のエントリが入っています。

SystemStart Windowsの起動

SystemExit Windowsの終了

SystemHand システム エラー

SystemExclamation メッセージ(警告)

SystemAsterisk メッセージ(情報)

SystemQuestion メッセージ(問い合わせ)

SystemDefault 一般の警告音

ファイル名にパスを含めない場合はカレント, WINDOWS, Windows の SYSTEM, WinBatchEh 起動時に設定されていた環境変数 PATH のディレクトリ(WinBatchEh 内で設定した PATH は参照しません)を検索に行きます。

フラグは動作内容を指定します。必要にあわせて以下の数値を設定してください。(定義文字列を使用する場合は大文字で指定してください)。

<数値> <定義文字列>             <動作内容>

指定なし                        サウンドが終了するのを待つ

0x0000 SND_SYNC                 サウンドが終了するのを待つ

0x0001 SND_ASYNC                サウンドが終了するのを待たない

0x0002 SND_NODEFAULT            ファイルがなければデフォルトの音を出さない

0x0008 SND_LOOP                 ファイル名なしでこのコマンドを再度呼び出すまで再生を繰り返す

0x0010 SND_NOSTOP               サウンドがすでに再生中なら指定されたサウンドの再生は行なわない

複数の動作をあわせて指定することも可能です。なお、SND_LOOPを使用するときは SND_ASYNC も指定してください。

戻り値

ありません。

例

SNDPLAYSOUND SystemStart

SNDPLAYSOUND TADA.WAV

SNDPLAYSOUND=SND_LOOP+SND_ASYNC CHIMES.WAV

SNDPLAYSOUND=SND_NODEFAULT	(SND_LOOPでの再生を止める)

参考

MESSAGEBEEP, MSGBEEP


INPUTSTRING
INPUTSTRING[=フラグ] 環境変数名 [表示メッセージ [タイトル]]

ダイアログボックスを表示して文字列入力を行ないます。次のような形式のウィンドウです。

環境変数名には入力した文字列を代入する環境変数名を指定します。この環境変数が空でなければ、入力文字列の初期値(デフォルト)として、環境変数の内容が入力ウィンドウに始めに表示されます。

表示メッセージにはメッセージ表示位置への表示文字列を指定します。指定がなければ何も表示されません。

タイトルはウィンドウ上部に表示される文字列を指定します。指定がなければ「Input Window」がタイトルになります。

フラグは動作内容を指定します。必要にあわせて以下の数値を設定してください。(定義文字列を使用する場合は大文字で指定してください)。

<数値> <定義文字列>             <動作内容>

0x0020 ES_PASSWORD              入力文字を隠します(*を表示)

0x4000 ES_FORMAT                文字列に\nなどのエスケープを適用する

ES_FORMATを指定した場合 PRINTF と同じ形式で\nなどのエスケープが使用できます(エスケープのみで%%dなどの引数は使用できません)。これにより文字列の途中で改行などを行なうことができます。

戻り値

  0	正常終了

  1	ユーザーが中止した

254	環境変数の領域が足りない

255	パラメーターが不足

例

INPUTSTRING NAME 名前を入力してください

INPUTSTRING=ES_PASSWORD PASSWD パスワードを入力してください

INPUTSTRING=ES_PASSWORD+ES_FORMAT PASSWD パスワードを入力してください\n(4桁)

参考

SELECTSTRING

GETOPENFILENAME


SELECTSTRING
SELECTSTRING[=タイムアウト秒] [/T[:]"タイトル"] [/M[:]"メッセージ"] [/E[:]環境変数名] [/X[:]最大文字列数] [/A] [/S] [/I] [/F] [/B] [文字列1 [文字列2 ...]]

リストボックスから文字列の選択を行ないます。

次のような画面になります。

以下のオプションが指定できます(オプション及び文字列とオプションの間はスペースを空けてください)。

/T:"文字列"  ウィンドウタイトルの指定を行ないます(デフォルトは "Select Window")。

/M:"文字列"  タイトルとボタンの間に表示するメッセージを指定します(デフォルトは表示なし)。

/E:変数名    環境変数に選択した文字列を代入します。

/X           最大の文字列数を指定します(デフォルト240)。

/A           複数の文字列を選択可能にします。

/S           文字列をソートします。

/I           文字列の指定を INI ファイルで行ないます。

/F           文字列の指定をテキストファイルから読み込みます。

/B           文字列の指定を続く行で行ないます。

/Tでのタイトルにはウィンドウのタイトルを指定します。/T:"Window Title" のようにタイトルを "" で囲って指定してください。指定がなければ "Select Window" がタイトルになります。

/Mでのメッセージには、メッセージを指定します。/M:"Message String" のようにメッセージを "" で囲って指定してください。指定がなければ何も表示されません。

/Eを指定すると選択した文字列を環境変数に代入することができます。/E:NAME のように /E に続けて環境変数名を指定してください。文字列の選択が行なわれなかった場合、その環境変数は空になります(削除されます)。

/Xを指定すると、最大の文字列の数を指定できます。指定がなければ240(最大値)です。INI ファイルからの読み込み時は時間が掛かりますが、このオプションで最大数を制限することにより、待ち時間を減らすことができます。

/Aを指定すると、複数の文字列が選択可能になります。/Eを指定した場合、環境変数には選択した文字列が、空白で区切られて代入されます(文字列に空白が含まれる場合は該当文字列が "" で囲われます)。/Eを指定して代入できる全文字数の合計は約500文字以内ですので、沢山の文字列を選択した場合、一部の文字列が代入されないことがあります。

/Sを指定すると、文字列をソートします。この指定がなければ指定された順番そのままになります。

文字列にはリストに表示する文字列を指定します。1つの文字列には最大128文字が指定できますが、文字列が長くなるとリストからはみ出してしまいます(はみ出した部分は表示が行なわれません)。それぞれの文字列は240個まで指定できます。

/Iを指定すると文字列の内容をINIファイルから取り込むことができます。/Iを指定した場合SELECTSTRINGのパラメーターは次のようになります。

  SELECTSTRING [/スイッチ] /I セクション名 エントリ名 INIファイル名

INIファイルのセクションとエントリは次のような形であらかじめ作成しておきます。(セクションとエントリの詳細については GETINISTRING を参照してください)

  [section]

  entry1=1番目の文字列

  entry2=2番目の文字列

        :

  entry240=240番目の文字列

指定されたセクションやファイルが見つからない場合、全く文字列の表示が行なわれません。INIファイルからの読み込みは若干時間を要します。

/Fを指定すると文字列の内容をテキストファイルから読み込みます。/Fを指定した場合SELECTSTRINGのパラメーターは次のようになります。

  SELECTSTRING [/スイッチ] /F ファイル名

指定するファイルの内容はあらかじめ作成しておきます。1行目が1番目の、2行目が2番目の文字列の内容になります。指定されたファイル名が見つからない場合、全く文字列の表示が行なわれません。ファイルからの読み込みはファイルの大きさにより若干時間を要します。

/Bを指定すると文字列の内容を続く行から読みとります。/Bを指定した場合SELECTSTRINGと続く行は次のようになります。

  SELECTSTRING [/スイッチ] /B

  1番目の文字列

  2番目の文字列

        :

  240番目の文字列

  .

最後の行は先頭に "." のみを指定してください。GOTOでのラベルと区別ができないため、文字列の先頭に ":" は使用しないでください。

タイムアウト時間を指定すると、指定の秒数が経過しても選択が行なわれなかった場合自動的にウィンドウが閉じるようになります。このとき戻り値(ERRORLEVEL)は0になります。タイムアウト時間は1～60秒まで指定できます。

戻り値(ERRORLEVEL)として、選択した文字列の上から数えた値(1,2,3..)が返ります。文字列の選択は文字列をシングルクリックして選択状態にして[OK]を押すか、文字列をダブルクリックすることにより行なえます。

戻り値

ありません。

  0	[Cancel]を選択, タイムアウト時間が経過した

  1 ～ 240  	(/Aを指定しないとき)上から数えた押した文字列の位置

  1 ～ 240  	(/Aを指定したとき)選択した文字列数

252	メモリーが不足

254	環境変数の領域が不足

255	パラメーターが不足

例

SELECTSTRING /M:"処理を選択してください" 今日の処理 昨日の処理 明日の処理

SELECTSTRING /T:"Mail" /M:"Select Your ID" /E:ID /I Member ID member.ini

SELECTSTRING /S /E:NAME /F c:\data\namelist.txt

参考

INPUTSTRING


CHOICEBUTTON
CHOICEBUTTON[=タイムアウト秒] [/T[:]"タイトル"] [/M[:]"メッセージ"] [/L] [/V] [/I] [/F] [/B] [/Z] [ボタン1文字列 [ボタン2文字列 ...]]

10個のボタンの中から選択を行なって選んだボタンの値を返します。

次のような画面になります。

以下のオプションが指定できます(オプション及び文字列とオプションの間はスペースを空けてください)。

/T:"文字列"  ウィンドウタイトルの指定を行ないます(デフォルトは "Choice Window")。

/M:"文字列"  タイトルとボタンの間に表示するメッセージを指定します(デフォルトは表示なし)。

/L           ボタン内の文字列を左寄せにします。

/V           空白のボタンの表示を行ないません。

/I           ボタン内容の指定を INI ファイルで行ないます。

/F           ボタン内容の指定をテキストファイルから読み込みます。

/B           ボタン内容の指定を続く行で行ないます。

/Z           ウィンドウのアイコン化を許可します。

/Tでのタイトルにはウィンドウのタイトルを指定します。/T:"Window Title" のようにタイトルを "" で囲って指定してください。指定がなければ "Choice Window" がタイトルになります。

/Mでのメッセージには、メッセージを指定します。/M:"Message String" のようにメッセージを "" で囲って指定してください。指定がなければ何も表示されません。

/Lが指定されるとボタン内の文字列を左寄せで表示します。但しプロポーショナルフォント(文字によって幅が違う)が使われますので、きれいにそろわないことがあります。/L が指定されなければ中央揃えで表示されます。

/Vが指定されると、文字列が指定されたボタンのみを表示し、空のボタンは表示が行なわれなくなります。/Vの指定がなければ空のボタンも含めた10個のボタンが必ず表示されます。

/Zを指定すると、ウィンドウのアイコン化ボタンが表示され、アイコンにすることが可能になります(ウィンドウサイズの変更も可能になります)。アイコン化しているときのアイコンは /Z[:]ファイル名[,インデックス番号] の様に指定します(例 /Z:PROGMAN.EXE,2)。ファイル名にはアイコンファイルや実行ファイル(EXE,DLL)が指定できます。ファイル内に複数のアイコンが含まれている場合はインデックス番号の数値により、どのアイコンを使用するか指定することができます。インデックス番号を省略すると0になります。ファイル名以下が省略された場合はWinBatchEh内のデフォルトのCHOICEBUTTON用のアイコンになります。

アイコン化されたウィンドウのシステムメニュー(コントロールメニュー)は表われませんので、元の状態に戻すにはアイコンをダブルクリックします。

文字列にはボタンの表示内容を指定します。文字列があまり長くなるとボタンに収まり切らなくなるので注意してください(60文字(漢字で30文字)程度が最大です)。文字列が指定されなかったボタンは選択が行なえません。

文字列の指定が全くされなければ各ボタンに1～10の数字を表示します。

"" の指定をボタンの文字列にすると、押すことができない空白のボタンを作ることができます。

ボタン文字列内で &文字 の形の指定を行なうと、その文字にアンダーラインが引かれて表示が行なわれ、その文字をキー入力することでも選択が行なえるようになります(例: "終了(&X)")。& 自身を表示するには && のように2つ重ねて指定してください。

/Iを指定するとボタンの表示内容をINIファイルから取り込むことができます。/Iを指定した場合CHOICEBUTTONのパラメーターは次のようになります。

  CHOICEBUTTON [/スイッチ] /I セクション名 エントリ名 INIファイル名

INIファイルのセクションとエントリは次のような形であらかじめ作成しておきます。(セクションとエントリの詳細については GETINISTRING を参照してください)

  [section]

  entry1=1番目のボタンの文字列

  entry2=2番目のボタンの文字列

        :

  entry10=10番目のボタンの文字列

指定されたセクションやファイルが見つからない場合やすべてのエントリが見つからない場合、各ボタンに1～10の数字を表示します。

指定されたエントリが見つからない場合そのボタンは空になります。

/Fを指定するとボタンの表示内容をテキストファイルから読み込みます。/Fを指定した場合CHOICEBUTTONのパラメーターは次のようになります。

  CHOICEBUTTON [/スイッチ] /F ファイル名

指定するファイルの内容はあらかじめ作成しておきます。1行目が1番目の、2行目が2番目のボタンの表示内容になります。指定されたファイル名が見つからない場合、各ボタンに1～10の数字を表示します。

/Bを指定するとボタンの表示内容を続く行から読みとります。/Bを指定した場合CHOICEBUTTONと続く行は次のようになります。

  CHOICEBUTTON [/スイッチ] /B

  1番目のボタンの文字列

  2番目のボタンの文字列

        :

  10番目のボタンの文字列

  .

最後の行は先頭に "." のみを指定してください。GOTOでのラベルと区別ができないため、ボタン文字列の先頭に ":" は使用しないでください。

タイムアウト時間を指定すると、指定の秒数が経過しても選択が行なわれなかった場合自動的にウィンドウが閉じるようになります。このとき戻り値(ERRORLEVEL)は0になります。タイムアウト時間は1～60秒まで指定できます。

なお、1番上のボタンはデフォルトボタンですので、リターンキーをいきなり押すとこのボタンの選択になります。

戻り値(ERRORLEVEL)として、選択したボタンの上から数えた値(1,2,3..)が返ります。

戻り値

  0	タイムアウト時間が経過した

  1 ～ 10  	リターン値(上から数えた押したボタンの位置)

252	メモリーが不足

255	パラメーターのエラー

例

CHOICEBUTTON

CHOICEBUTTON /T:"処理選択ウィンドウ" /M:"処理を選んでください" 今日の処理 昨日の処理 明日の処理

CHOICEBUTTON=10 /L /V 今年の処理(&1) 昨年の処理(&2) 来年の処理(&3) 中断(&X)

CHOICEBUTTON /V /I MENU ITEM MENU.INI

参考

CHOICE


GETOPENFILENAME
GETOPENFILENAME[=フラグ] [/T[:]"タイトル"] 環境変数名 [ファイルマスク]

コモンダイアログボックスを使用してファイル名の選択(または入力)を行ないます。次のような形式のウィンドウです。

Windows95では次の様なウィンドウになります(OFN_DIRSELECT または OFN_ALLOWMULTISELECT を指定した場合は前述の形式のウィンドウになります)。

環境変数名には選択したファイル名を代入する環境変数名を指定します。ファイル名はフルパスで設定されます。正常終了しなかった場合(ユーザーによるキャンセルやエラー)環境変数は空になります(削除されます)。

ファイルマスク設定には表示を行なうファイルのマスクを設定します。ファイルマスク設定は "すべてのファイル(*.*)" のようにまず説明を書き続けて括弧内にファイルのマスクを記述してください。ファイルマスクは "LHA(*.LZH;*.LZS)" のようにセミコロン(;)で区切って複数指定することができます。

マスク設定自身を複数指定する場合は "DOCUMENT(*.DOC;*.TXT),WRITE(*.WRI)" のようにカンマ(,)で区切ってください。

ファイルマスク設定の指定がなければすべてのファイルの選択になります。

/Tでのタイトルにはウィンドウのタイトルを指定します。/T:"Window Title" のようにタイトルを "" で囲って指定してください。指定がなければ「ファイルを開く」がタイトルになります。なお、以前のバージョンではファイルマスクの後にタイトルを指定するようになっていましたので、その形式でタイトルを指定することも可能です。

フラグは動作内容を指定します。必要にあわせて以下の数値を設定してください。(定義文字列を使用する場合は大文字で指定してください)。

<数値> <定義文字列>             <動作内容>

0x0001 OFN_READONLY             [読み取り専用]をチェック

0x0002 OFN_OVERWRITEPROMPT      存在すれば確認メッセージ表示

0x0004 OFN_HIDEREADONLY         [読み取り専用]のメッセージを非表示

0x0008 OFN_NOCHANGEDIR          終了時カレントディレクトリを復元

0x0010 OFN_DIRSELECT            ディレクトリを選択

0x0100 OFN_NOVALIDATE           ファイル名として無効な文字を許す

0x0200 OFN_ALLOWMULTISELECT     複数のファイル名を選択可能(C:\PATH FILE1 FILE2 ...)

0x0400 OFN_ALLOWMULTISELECT_F   複数のファイル名を選択可能(C:\PATH\FILE1 C:\PATH\FILE2 ...)

0x0800 OFN_PATHMUSTEXIST        有効なパス名のみを入力可能

0x1000 OFN_FILEMUSTEXIST        既存のファイル名のみを入力可能

0x2000 OFN_CREATEPROMPT         新規のファイル名なら確認表示

0x4000 OFN_SHAREAWARE           共有違反を無視する

0x8000 OFN_NOREADONLYRETURN     非リードオンリーファイルのみ選択

以下は32ビットバージョンでのみ有効です(16ビットバージョンでは指定しても無視されます)。

<数値>     <定義文字列>             <動作内容>

0x00020000 OFN_NONETWORKBUTTON      [ネットワーク]ボタンを表示しない

0x00040000 OFN_NOLONGNAMES          OFN_ALLOWMULTISELECT時、短いファイル名を返す

0x00100000 OFN_NODEREFERENCELINKS   ショートカットファイルを選んでも、そのままショートカットファイル名を返す

複数の動作を組み合わせて指定することも可能です。例えば、以下の行はすべて同じ動作を行ないます。

GETOPENFILENAME=0x0804 NAME

GETOPENFILENAME=0x0004+0x0800 NAME

GETOPENFILENAME=OFN_HIDEREADONLY+OFN_PATHMUSTEXIST NAME

OFN_ALLOWMULTISELECT を指定して、複数のファイルが選択された場合、環境変数には先頭にディレクトリ名、その後空白で区切られてファイル名が設定されます。(1つのファイルのみが選択されると通常通り1ファイルがフルパスで入ります)。

OFN_ALLOWMULTISELECT_F を指定して、複数のファイルが選択された場合、環境変数にはそれぞれのファイル名が、空白で区切られてフルパスで入ります。

OFN_ALLOWMULTISELECT または OFN_ALLOWMULTISELECT_F を指定した場合、32ビットバージョンでも、スペースが含まれるファイル名は短いフィル名で処理されます(返されるファイル名にスペースが含まれることはありません)。なお、ファイルの選択数が多すぎる場合、環境変数に収まる範囲で、選択ファイルが切り捨てられることがあります。

OFN_NOCHANGEDIR を指定しなければカレントディレクトリはユーザーが移動を行なったドライブ・ディレクトリに移動されたままになります。

OFN_DIRSELECT を指定するとドライブとディレクトリのウィンドウのみが表示され、[OK]を押したときのディレクトリの位置をドライブ名を含めた絶対パスで返します。なお、ファイルマスクは指定しないでください。

一切のフラグを指定しなければ次のような設定となり、存在するファイルのみを選択できます。

OFN_HIDEREADONLY+OFN_PATHMUSTEXIST+OFN_FILEMUSTEXIST

戻り値

  0	正常終了

  1	ユーザーが中止した, パラメーターが不正

254	環境変数の領域が足りない

255	パラメーターが不足

例

GETOPENFILENAME FILENAME

GETOPENFILENAME /T:"ライトの文書を選択してください" FNAME ライト(*.WRI)

GETOPENFILENAME=OFN_HIDEREADONLY+OFN_PATHMUSTEXIST FNAME ドキュメント(*.DOC,*.TXT),すべてのファイル(*.*)

参考

DROPFILEWAIT

INPUTSTRING


DROPFILEWAIT
DROPFILEWAIT[=タイムアウト秒] 環境変数名 [ドロップ可能な最大ファイル数]

ファイルがドロップされるのを待ちます。

このコマンドを実行すると、ファイルマネージャなどからファイル(またはディレクトリ)が、現在のバッチ実行ウィンドウまたはバッチ内容表示ウィンドウに、ドラッグ＆ドロップされるまで動作が停止します。

ドロップされたファイルが複数の場合環境変数にはスペースで区切られてファイル名(及びディレクトリ名)が入ります。

ドロップされたものが、ファイル名かディレクトリ名かの判断はバッチ内で行なう必要があります。ドロップされたファイル名またはディレクトリは通常それぞれがすべてフルパスになっています。

ドロップ可能な最大ファイル数の指定を行なうと、そのファイル数でドロップされるファイルの入力が切り捨てられます(もう一度このコマンドを呼び出しても続きが入力されることはありません)。最大ファイル数の指定を行なわなければドロップされたものすべてが(環境変数の最大長さを超えない範囲で)環境変数に設定されます。

タイムアウト時間を指定すると、指定の秒数が経過しても選択が行なわれなかった場合自動的にコマンドが終了します。このとき戻り値(ERRORLEVEL)は0になり、環境変数は空になります(削除されます)。タイムアウト時間は1～60000秒まで指定できます。

戻り値

  0	タイムアウト時間が経過した

  1 ～	ドロップしたファイル数

254	環境変数の領域が不足

255	パラメーターが不足

例

DROPFILEWAIT DNAME

DROPFILEWAIT=60 DROPNAME 1

参考

GETOPENFILENAME


CHOOSECOLOR
CHOOSECOLOR[=フラグ] [/T[:]"タイトル"] 赤の環境変数 緑の環境変数 青の環境変数

コモンダイアログボックスを使用して色の選択を行ないます。次のような形式のウィンドウです。

環境変数には選択した色のそれぞれの度合いが0～255の数値で入ります。正常終了しなかった場合(ユーザーによるキャンセル)すべての環境変数は空になります(削除されます)。

/Tでのタイトルにはウィンドウのタイトルを指定します。/T:"Window Title" のようにタイトルを "" で囲って指定してください。指定がなければ「色の設定」がタイトルになります。

フラグは動作内容を指定します。必要にあわせて以下の数値を設定してください。(定義文字列を使用する場合は大文字で指定してください)。

<数値> <定義文字列>             <動作内容>

0x0001 CC_RGBINIT               指定された環境変数に入っていた数値を最初の選択肢とします。

0x0002 CC_FULLOPEN              カスタムカラー(色の作成)の部分を始めから表示します。

0x0004 CC_PREVENTFULLOPEN       カスタムカラー(色の作成)ボタンを使用不可能にします。

戻り値

  0	正常終了

  1	ユーザーが中止した

254	環境変数の領域が足りない

255	パラメーターが不足

例

CHOOSECOLOR=CC_RGBINIT /T:"色を選択してください" ENV_R ENV_G ENV_B


EXITWINDOWS, RESTARTWINDOWS, REBOOTSYSTEM, EXITWINDOWSEXEC
EXITWINDOWS

RESTARTWINDOWS

REBOOTSYSTEM

EXITWINDOWSEXEC 実行ファイル [実行ファイルのパラメーター]

Windowsの終了や再起動、システムのリブート、再起動時とDOSコマンドの実行を行ないます。

32ビットバージョンではかなりの制約があります。32ビットバージョンで16ビットバージョンと同等の機能を実現したい場合は、別アーカイブのWBEXIT16を用意してください。

EXITWINDOWS

Windowsを終了します。正常に終了した場合にはバッチに戻ってきません。

なお、32ビットバージョン上で、ソフトウェアによる電源制御がサポートされている場合、"EXITWINDWS 9,0" とパラメータを付けてコマンドを実行することにより、Windows終了後、電源を切断することもできます。ただし、環境によっては、パラメータを付けるとWindowsを終了できない場合や、パラメータを付けなくても電源が切断される場合があるようです。

戻り値

  1	終了できない

例

EXITWINDOWS

EXITWINDOWS 9,0

RESTARTWINDOWS

16ビットバージョンではWindowsを再起動します。32ビットバージョンではログオフを行ないます(Windows95ではプロセスの終了が行なわれないのと、次に起動したときにスタートアップが実行されないなど問題が多いため使用しないでください)。正常に再起動またはログオフができた場合にはバッチに戻ってきません。

戻り値

  1	終了できない

例

RESTARTWINDOWS

REBOOTSYSTEM

Windowsを終了しシステム(マシン)を再起動します。正常に再起動できた場合にはバッチにもWindowsにも戻ってきません。

なお、マシン環境によっては正常に動作しない可能性があります。

戻り値

  1	終了できない

例

REBOOTSYSTEM

EXITWINDOWSEXEC 実行ファイル [実行ファイルのパラメーター]

Windowsを一旦終了し、DOSの実行ファイルを実行後、再度Windowsを起動します。正常に起動できた場合にはバッチに戻ってきません。

実行ファイルはフルパスで拡張子を含めて指定してください。なお、バッチファイルを直接実行することはできませんのでCOMMAND.COM経由で起動する必要があります(例:C:\COMMAND.COM /C C:\BAT\SETUP.BAT)。

32ビットバージョンでは使用できません。

戻り値

  1	終了できない

例

EXITWINDOWSEXEC C:\DOS\CHKDSK.EXE C:


GETINISTRING
GETINISTRING セクション名 エントリ名 環境変数名 INIファイル名

INIファイルの指定されたセクションのエントリの文字列を取得し環境変数に代入を行ないます。

通常セクションとエントリは次のようになっています。

[section]

entry=string

指定されたセクションとエントリが見つからないときやstringに文字列が設定されてない場合、環境変数は空になります(削除されます)。

セクションとエントリは大文字と小文字が区別されません。INIファイルをフルパスで指定しなければ、WINDOWSのディレクトリから検索が行なわれます。

戻り値

  0	正常終了

  1	指定のセクションとエントリが見つからない,

   	エントリに文字列が設定されていない

254	環境変数の領域が足りない

255	パラメーターが不足

例

GETINISTRING windows run ENV win.ini

参考

WRITEINISTRING, SETINISTRING


WRITEINISTRING, SETINISTRING
WRITEINISTRING セクション名 エントリ名 "設定文字列" INIファイル名

SETINISTRING セクション名 エントリ名 "設定文字列" INIファイル名

INIファイルの指定されたセクションのエントリに文字列を設定します。

通常セクションとエントリは次のようになっています。

[section]

entry=string

指定されたセクションとエントリがすでに存在すれば置き換えが行なわれ、見つからなければ新たに作成が行なわれます。

セクションとエントリは大文字と小文字が区別されません。

INIファイルをフルパスで指定しなければ、WINDOWSのディレクトリから検索が行なわれます。またファイルが存在しなければ作成が行なわれます。

設定文字列を "" にすると、そのエントリが削除されます。またエントリと設定文字列の両方を "" にすると、セクションが削除されます。

戻り値

  0	正常終了

  1	エラー

255	パラメーターが不足

例

WRITEINISTRING windows run winclock.exe win.ini

WRITEINISTRING windows run "" win.ini

WRITEINISTRING windows "" "" win.ini

参考

GETINISTRING


GETREGSTRING
GETREGSTRING[=フラグ] [/N] [R:ルートキー名] [T:タイプ] [/E] "キー名" 環境変数名

レジストリデータを取得します。

32ビットバージョンでは以下のオプションが指定できます(オプション及び文字列とオプションの間はスペースを空けてください)。16ビットバージョンではオプションを指定しても無視されます。

/N      フラグに RIGHT を指定したとき最後のキーをキー内の名前指定とみなします。

/R      ルートのキー名を指定します。

/T      データのタイプを指定します。

/E      指定キーの配下の全サブキーを表示する。

キー名に例えばテキストファイルであれば ".TXT" を指定すると、そのファイルに関連付けが行なわれているコマンド名を環境変数に代入します。

関連付けの取得は \キー名\shell\open\command から行なわれます。(複雑に見えますがファイルマネージャで関連付けを行なうと自動的にこの値になります)。

フラグに RIGHT を指定すれば自由なキー名を指定できます。この場合キー名への \shell\open\command の追加は行なわれませんので、キー名をフルパスで指定してください。

関連付けが行なわれていない場合、環境変数は空になります(削除されます)。

/Nを指定すると、例えばキー名を "Software\comp\proj\soft\name" とした場合、最後の "name" をキー内の名前として処理します。指定しなければ、"name" はキー名として処理します(16ビットバージョンではキー内の名前は存在しないためこのオプションを付けても無視されます)。この指定をする場合はフラグに RIGHT を指定してください。

キー名と名前の違いは、32ビットのWindowsではキー内にさらに名前を付けて値を保存できます。キー内で名前が付いた値は名前あり(/Nあり)でアクセスします。逆に16ビットのWindowsと同じ様にキー内に名前を付けずに保存されたデータには、名前なし(/Nなし)でアクセスします。32ビットのWindowsに付属しているレジストリエディタで見たときに、標準という項目で示されるのがそれです。

/Rを指定するとルートキーの指定を行なえます。ルートキーには HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_PERFORMANCE_DATA, HKEY_CURRENT_CONFIG, HKEY_DYN_DATA のいずれかを指定します。ルートキーの指定は大文字で "/R:HKEY_CURRENT_USER" の様に行なってください。指定がなければ、HKEY_CLASSES_ROOT で処理します。16ビットバージョンでは HKEY_CLASSES_ROOT しか存在しないため、このオプションを指定しても無視されます。

/Tを指定するとデータのタイプを指定できます。タイプには REG_SZ(文字列)または REG_DWORD(32ビットの数値)を指定できます。タイプの指定は大文字で "/T:REG_DWORD" の様に行なってください。指定がなければ、REG_SZ で処理します。16ビットバージョンでは REG_SZ しか存在しないため、このオプションを指定しても無視されます。

/Eを指定すると、指定キーのすぐ下のサブキー(キー名のみ)をすべてキー名毎に改行して表示します。サブキーの下にさらにキー名が含まれていてもそれは表示されません。表示されるのはキー名のみで、表示の際にソートは行なわれません。/E を指定した場合、環境変数名の指定は不要です(指定しても無視されます)。

なお、GETREGSTRING はレジストリファイルからの取得のみを行ない、WIN.INI の Extensions セクションからの取得などは行ないません。

戻り値

  0	正常終了

  1	キーが見つからない

  2	エラー

255	パラメーターが不足

例

GETREGSTRING ".TXT" ENVNAME

GETREGSTRING=RIGHT ".TXT\shell\open\print" ENVNAME

GETREGSTRING=RIGHT /N /R:HKEY_CURRENT_USER "Software\Microsoft\Plus!\Pinball\SpaceCadet\0.Name" ENVNAME

GETREGSTRING=RIGHT /N /R:HKEY_CURRENT_USER /T:REG_DWORD "Software\Microsoft\Plus!\Pinball\SpaceCadet\Table Version" ENVNAME

GETREGSTRING=RIGHT /E LISENCES

参考

SETREGSTRING

GETINISTRING


SETREGSTRING
SETREGSTRING[=フラグ] [/N] [/R:ルートキー名] [/T:タイプ] "キー名" "設定文字列"

レジストリデータを設定します。

32ビットバージョンでは以下のオプションが指定できます(オプション及び文字列とオプションの間はスペースを空けてください)。16ビットバージョンではオプションを指定しても無視されます。

/N      フラグに RIGHT を指定したとき最後のキーをキー内の名前指定とみなします。

/R      ルートのキー名を指定します。

/T      データのタイプを指定します。

キー名に例えばテキストファイルであれば ".TXT" を指定すると、そのファイルの関連付けに設定文字列を設定します。設定文字列には必要であればパラメーターの指定(%%1)も含めてください。

関連付けの取得は \キー名\shell\open\command に行ないます。(複雑に見えますがファイルマネージャで関連付けを行なうと自動的にこの値になります)。

フラグに RIGHT を指定すれば自由なキー名を指定できます。この場合キー名への \shell\open\command の追加は行なわれませんので、キー名をフルパスで指定してください。

設定文字の指定を行なわなければ、キーまたはキー内の名前を削除します。

フラグに RIGHT を付けなければ、\shell\command のキーだけではなく、指定のキーで始まるツリーがすべて削除されます。フラグに RIGHT を指定して、キー名で削除を行なうとき、その下にキーが存在すればそれらもすべて削除されます。

WindowsNT ではフラグに RIGHT を指定した場合、キーの下にさらにキーが存在すると削除が行なわれません(フラグに RIGHT を指定しなければその下のキーもすべて削除されます)。

/Nを指定すると、例えばキー名を "Software\comp\proj\soft\name" とした場合、最後の "name" をキー内の名前として処理します。指定しなければ、"name" はキー名として処理します(16ビットバージョンではキー内の名前は存在しないためこのオプションを付けても無視されます)。この指定をする場合はフラグに RIGHT を指定してください。

キー名と名前の違いは、32ビットのWindowsではキー内にさらに名前を付けて値を保存できます。キー内で名前が付いた値は名前あり(/Nあり)でアクセスします。逆に16ビットのWindowsと同じ様にキー内に名前を付けずに保存されたデータには、名前なし(/Nなし)でアクセスします。32ビットのWindowsに付属しているレジストリエディタで見たときに、標準という項目で示されるのがそれです。

/Rを指定するとルートキーの指定を行なえます。ルートキーには HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_PERFORMANCE_DATA, HKEY_CURRENT_CONFIG, HKEY_DYN_DATA のいずれかを指定します(HKEY_USERSは使用しないでください)。ルートキーの指定は大文字で "/R:HKEY_CURRENT_USER" の様に行なってください。指定がなければ、HKEY_CLASSES_ROOT で処理します。16ビットバージョンでは HKEY_CLASSES_ROOT しか存在しないため、このオプションを指定しても無視されます。

/Tを指定するとデータのタイプを指定できます。タイプには REG_SZ(文字列)または REG_DWORD(32ビット値)を指定できます。タイプの指定は大文字で "/T:REG_DWORD" の様に行なってください。指定がなければ、REG_SZ で処理します。16ビットバージョンでは REG_SZ しか存在しないため、このオプションを指定しても無視されます。

なお、SETREGSTRING はレジストリファイルへの設定のみを行ない、WIN.INI の Extensions セクションへの設定などは行ないません。

戻り値

  0	正常終了

  1	キーが見つからない

  2	エラー

255	パラメーターが不足

例

SETREGSTRING ".TXT" "NOTEPAD.EXE %%1"

SETREGSTRING ".TXT"

SETREGSTRING=RIGHT ".TXT\shell" "NOTEPAD.EXE /p %%1"SETREGSTRING=RIGHT /N /R:HKEY_CURRENT_USER "Software\Microsoft\Plus!\Pinball\SpaceCadet\0.Score" "1000000"

SETREGSTRING=RIGHT /N /R:HKEY_CURRENT_USER /T:REG_DWORD "Software\Microsoft\Plus!\Pinball\SpaceCadet\Table Version" 123

参考

GETREGSTRING

WRITEINISTRING, SETINISTRING


SYSTEMPARAMETERSINFO, SYSPARAMINFO
SYSTEMPARAMETERSINFO アクション名 [数値または文字列 [WIN.INI更新フラグ]]

SYSPARAMINFO アクション名 [数値または文字列 [WIN.INI更新フラグ]]

システムレベルのパラメータの取得または設定を行ないます。

数値または文字列に与える値はアクション名により異なります。それぞれのアクションの場合に応じて設定値を与えてください。省略すると数値なら0、文字列なら空文字列が与えられます。文字列を与える場合は " " で囲ってください。

取得を行なうコマンドの場合取得した値がERRORLEVELに設定されます。

WIN.INI更新フラグは設定を行なった場合に、WIN.INIを更新するかどうかを数値で指定します。1(SPIF_UPDATEINIFILE:新しいパラメーターをWIN.INIに書き込む) または 3(SPIF_SENDWININICHANGE:新しいパラメーターをWIN.INIに書き込み現在起動しているアプリケーションすべてにWIN.INIが更新されたことを知らせる) が指定でき、省略する(または0を与える)と更新処理を行ないません。

アクション名には以下の指定が行なえます。数値はすべて10進数です。(定義文字列を使用する場合は大文字で指定してください)。

<数値> <定義文字列>             <行なうアクション>

  1    SPI_GETBEEP              警告ビープ音の状態を取得(0:OFF,1:ON)

  2    SPI_SETBEEP              警告ビープ音をオンまたはオフにする(0:OFF,1:ON)

  5    SPI_GETBORDER            ウィンドウのサイズ変更境界の枠の太さの倍率を取得

  6    SPI_SETBORDER            ウィンドウのサイズ変更境界の枠の太さを決める倍率値を設定

 10    SPI_GETKEYBOARDSPEED     キーボードのリピート間隔を取得

 11    SPI_SETKEYBOARDSPEED     キーボードのリピート間隔を設定

 12    SPI_LANGDRIVER           言語ドライバーファイル名を指定して新しい言語ドライバを設定

 13    SPI_ICONHORIZONTALSPACING アイコンセルの幅をピクセル単位で設定

 14    SPI_GETSCREENSAVETIMEOUT スクリーンセーバーの実行までの待ち時間を(ミリ秒単位で)取得

 15    SPI_SETSCREENSAVETIMEOUT スクリーンセーバーの実行までの待ち時間を(ミリ秒単位で)設定

 16    SPI_GETSCREENSAVEACTIVE  スクリーンセーバー機能の状態を取得(0:OFF,1:ON)

 17    SPI_SETSCREENSAVEACTIVE  スクリーン セーバーの状態を設定(0:OFF,1:ON)

 18    SPI_GETGRIDGRANULARITY   現在のデスクトップのウィンドウのサイズ変更と移動の単位を取得

 19    SPI_SETGRIDGRANULARITY   デスクトップのウィンドウのサイズ変更と移動の単位を設定

 20    SPI_SETDESKWALLPAPER     デスクトップの壁紙として使われるビットマップファイルを指定

 21    SPI_SETDESKPATTERN       " "で囲った8個の数値パターンを指定して背景模様を設定

 22    SPI_GETKEYBOARDDELAY     キーボードのオートリピート開始までの遅延時間を取得

 23    SPI_SETKEYBOARDDELAY     キーボードのオートリピート開始までの遅延時間を設定

 24    SPI_ICONVERTICALSPACING  アイコンセルの高さをピクセル単位で設定

 25    SPI_GETICONTITLEWRAP     アイコンタイトルの改行の状態を取得

 26    SPI_SETICONTITLEWRAP     アイコンタイトルの改行を設定(0:OFF,1:ON)

 27    SPI_GETMENUDROPALIGNMENT ポップアップメニューが左ぞろえか右ぞろえかを取得(0:左揃え,1:右揃え)

 28    SPI_SETMENUDROPALIGNMENT ポップアップメニューが左ぞろえか右ぞろえかを設定(0:左揃え,1:右揃え)

 29    SPI_SETDOUBLECLKWIDTH    ダブルクリックの2回目のクリックがダブルクリックとして認められるための、1回目と2回目の間の長方形の幅を設定

 30    SPI_SETDOUBLECLKHEIGHT   ダブルクリックの2回目のクリックがダブルクリックとして認められるための、1回目と2回目の間の長方形の高さを設定

 32    SPI_SETDOUBLECLICKTIME   マウスのダブルクリック時間を(ミリ秒単位で)設定

 33    SPI_SETMOUSEBUTTONSWAP   マウスの右ボタンと左ボタンの機能を交換、または元に戻す(0:通常の状態,1:交換)

 35    SPI_GETFASTTASKSWITCH    アプリケーションの高速切り替えの状態を取得(0:OFF,1:ON)

 36    SPI_SETFASTTASKSWITCH    アプリケーションの高速切り替えの状態を設定(0:OFF,1:ON)

戻り値

  0 ～   	リターン値

例

SYSTEMPARAMETERSINFO SPI_SETDESKWALLPAPER "%windir%\tartan.bmp" SPIF_UPDATEINIFILE


GETCLIPBOARD
GETCLIPBOARD 環境変数名 または /F[:]ファイル名

クリップボードから文字列を受け取り環境変数に代入します。

クリップボードに有効なデータがない場合環境変数は空になります(削除されます)。

環境変数の代わりに /Fオプションを指定してファイルにクリップボードの内容を受け取ることもできます。扱えるファイルはテキストファイルのみで、最大のサイズは32KBです。クリップボードの内容を受け取れなかった場合、ファイルは元の状態のままになります。ファイル名の先頭を '+' にすると指定のファイルに追加します。

戻り値

  0	正常終了

  1	クリップボードに有効なデータがない

250	(/F指定時)ファイルが作成できない

254	環境変数の領域が足りない

255	パラメーターが不足

例

GETCLIPBOARD ENVNAME

GETCLIPBOARD /F:CLIPFILE.TXT

参考

SETCLIPBOARD


SETCLIPBOARD
SETCLIPBOARD[=FORMAT] 文字列 または /F[:]ファイル名

クリップボードに文字列を設定(送出)します。

文字列が指定されなかった場合、クリップボードの内容の消去を行ないます。

FORMATフラグを指定した場合 PRINTF と同じ形式で\nなどのエスケープが使用できます(エスケープのみで%%dなどの引数は使用できません、また\gは使用できません)。これにより文字列の途中で改行などを行なうことができます。

文字列の代わりに /Fオプションを指定してファイルの内容を設定(送出)することもできます。扱えるファイルはテキストファイルのみで、最大のサイズは32KBです。

戻り値

  0	正常終了

  1	クリップボードが使用できない

250	(/F指定時)ファイルが存在しない

例

SETCLIPBOARD

SETCLIPBOARD これは WinBatchEh からのクリップです

SETCLIPBOARD=FORMAT これは\nWinBatchEh\nからのクリップです

SETCLIPBOARD /F:README.TXT

参考

GETCLIPBOARD


POSTMESSAGE, POSTMSG, SENDMESSAGE, SENDMSG
POSTMESSAGE[=フラグ] "ウィンドウタイトル" メッセージ

POSTMSG[=フラグ] "ウィンドウタイトル" メッセージ

SENDMESSAGE[=フラグ] "ウィンドウタイトル" メッセージ

SENDMSG[=フラグ] "ウィンドウタイトル" メッセージ

アプリケーションにメッセージを送ります。

POSTMESSAGEはメッセージを送ってすぐにバッチに戻ります。

SENDMESSAGEはメッセージを送って応答があるまで待ちます。

SENDMESSAGEでは送れない場合がありますので、通常はPOSTMESSAGEの方を使用してください。(SENDMESSAGEに対してアプリケーションが応答を返さないコマンドの場合Windows自身が止まってしまう可能性があります)。

ウィンドウタイトルの英大小文字と半角全角カタカナは同一視されます。ウィンドウタイトルは前方一致または後方一致で検索が行なわれます(タイトル検索の仕様)。

クラス名が分かっている場合、"@クラス名" とすればクラス名に対する処理が行なえます。クラス名を指定する場合も英大小文字も比較されますし、この場合前方一致とはなりません。

ハンドル番号が分かっている場合、"$ハンドル番号" とすれば指定のハンドル番号を持つウィンドウに対する処理が行なえます。ハンドル番号は16進数で指定します。

フラグに REAL を指定するとウィンドウタイトルは正確な検索が行なわれます。この場合英大小文字や半角全角カタカナも区別されますし、ファイル名が後に続く場合はその部分まで正確に記述する必要があります。

必要な場合は、メッセージの後にさらにパラメーターを指定してください。

メッセージで使用できそうなものは以下のものです。(定義文字列を使用する場合は大文字で指定してください)。これ以外の数値を直接指定していろいろなメッセージを送ることができるかと思いますが、最悪システムが壊れる可能性がありますし、SDKのマニュアル等を参照して、指定してください。

<数値> <定義文字列>             <動作の内容>

0x0010 WM_CLOSE                 終了(閉じる)

0x0012 WM_QUIT                  終了(抜ける)

アプリケーションを終了する動作を行ないます。どちらを使っても同じような意味ですが、片方しか効かない場合もあります。

<数値> <定義文字列>             <動作の内容>

0x0100 WM_KEYDOWN               キーを押す

0x0101 WM_KEYUP                 キーを離す

0x0102 WM_CHAR                  キーのコードを送る

1番目のパラメーターに仮想キーのコードを指定します。

但し3つの処理のどれが有効に扱われるかはアプリケーションによりますし、キー入力をそのまま処理していない場合もあり、その場合は動作が行なえません。

仮想キーのコードの参照

<数値> <定義文字列>             <動作の内容>

0x0112 WM_SYSCOMMAND            システムメニューコマンド

1番目のパラメーターにシステム(コントロール)メニュー(一番左上をクリックしたときに出るメニューのコマンドの内容など)系のコードを指定します。

主なコードは次の通りです。

        <数値> <定義文字列>             <動作の内容>

        0xF000 SC_SIZE                  サイズ変更

        0xF010 SC_MOVE                  移動

        0xF020 SC_MINIMIZE              最小(アイコン)化

        0xF030 SC_MAXIMIZE              最大化

        0xF060 SC_CLOSE                 クローズ

        0xF120 SC_RESTORE               通常サイズに復元

        0xF130 SC_TASKLIST              タスクリスト

        0xF140 SC_SCREENSAVE            スクリーンセーバー起動

戻り値

  0	(POSTMESSGAEの場合)正常終了

  1	(POSTMESSGAEの場合)エラー

253	指定のウィンドウが見つからない

255	パラメーターが不足

  0 ～	(SENDMESSAGEの場合)リターン値またはエラーコード

  (SENDMESSAGEの場合エラーとリータンを区別できません)

例

POSTMESSAGE "電卓" WM_QUIT

POSTMESSAGE "印刷" WM_KEYDOWN 0x0d

POSTMESSAGE=REAL "メモ帳 -（無題）" WM_SYSCOMMAND SC_MINIMIZE

SENDMESSAGE "電卓" 0x0010

SENDMESSAGE=REAL "メモ帳 -（無題）" WM_QUIT

参考

IF (IF EXISTWINDOW)

SENDKEY

SENDMENUKEY


SENDMENUKEY
SENDMENUKEY[=フラグ] "ウィンドウタイトル" キーコード [キーコード ...]

アプリケーションのメニューを選択します。

アプリケーション内のメニューは通常Altキーとキーボードの文字を押すことにより選択できますが、このコマンドによりその事と同じ動作が行なえます。

キーコードは数値または ' ' で囲った文字(英大文字)を指定します。キーコードは空白で区切って複数指定することができます。例えばNOTEPAD.EXE(メモ帳)の「編集(E)」メニュー内の「時刻と日付の挿入(D)」を行なうには、

SENDMENUKEY "メモ帳" 'E' 'D'

の様に指定します。複数のキー操作により行なうアクションは、このように一度に指定するようにしてください。

ウィンドウタイトルの英大小文字と半角全角カタカナは同一視されます。ウィンドウタイトルは前方一致または後方一致で検索が行なわれます(タイトル検索の仕様)。

クラス名が分かっている場合、"@クラス名" とすればクラス名に対する処理が行なえます。クラス名を指定する場合も英大小文字も比較されますし、この場合前方一致とはなりません。

ハンドル番号が分かっている場合、"$ハンドル番号" とすれば指定のハンドル番号を持つウィンドウに対する処理が行なえます。ハンドル番号は16進数で指定します。

フラグに REAL を指定するとウィンドウタイトルは正確な検索が行なわれます。この場合英大小文字や半角全角カタカナも区別されますし、ファイル名が後に続く場合はその部分まで正確に記述する必要があります。

※注意: アプリケーションや環境によってはこのコマンドは動作しない場合があります。

SENDMENUKEY でキーを送れない場合は SENDKEY の Alt キーとの組み合わせによるキーの送出を使用してみてください。

旧バージョンでは POSTMENUCHAR としていましたが、分かりにくいためコマンド名を変更しています(POSTMENUCHAR も使用できます)。

戻り値

  0	正常終了

  1	エラー

253	指定のウィンドウが見つからない

255	パラメーターが不足、パラメーターのエラー

例

SENDMENUKEY "クリップボード" 0x48 0x41

SENDMENUKEY=REAL "メモ帳 -（無題）" 'E' 'D'

SENDMENUKEY @PROGMAN 'W' 'C'

参考

POSTMESSAGE/SENDMESSAGE

SENDKEY


SENDKEY
SENDKEY[=フラグ] "ウィンドウタイトル" キーコード [キーコード ...]

キーコードを直接送ります。アプリケーションによっては送れない場合がありますが、POSTMESSAGEのWM_KEYDOWNなどを使用するより、ほぼ確実にキーを押す動作を行なう事ができます。メニューのキーを押すときは SENDMENUKEY を使用した方が安全です。

キーコードは数値または ' ' で囲った文字(英大文字)を指定します。キーコードは空白で区切って複数指定することができます。また、キーコードの前に以下の記号を付ける事により、SHIFTキーなどとの組み合わせを指定する事が可能です。

        <記号>         <意味>

        +              SHIFTキー

        ^              Control(CTRL)キー

        %% または &    Altキー

キーコードには仮想キーの指定も使用できます仮想キーのコードの参照。

文字列などを入力するために、このコマンドを使用するのは CAPS ロックの影響を受けるため、あまり良い方法ではありません。文字列を入力するにはクリップボード連携を使用してください。

ウィンドウタイトルの英大小文字と半角全角カタカナは同一視されます。ウィンドウタイトルは前方一致または後方一致で検索が行なわれます(タイトル検索の仕様)。

クラス名が分かっている場合、"@クラス名" とすればクラス名に対する処理が行なえます。クラス名を指定する場合も英大小文字も比較されますし、この場合前方一致とはなりません。

ハンドル番号が分かっている場合、"$ハンドル番号" とすれば指定のハンドル番号を持つウィンドウに対する処理が行なえます。ハンドル番号は16進数で指定します。

フラグに REAL を指定するとウィンドウタイトルは正確な検索が行なわれます。この場合英大小文字や半角全角カタカナも区別されますし、ファイル名が後に続く場合はその部分まで正確に記述する必要があります。

※注意: アプリケーションや環境、文字コードによってはこのコマンドは動作しない場合があります。

戻り値

  0	正常終了

  1	エラー

251	DLLのロードに失敗

253	指定のウィンドウが見つからない

255	パラメーターが不足またはエラー

例

SENDKEY "メモ帳" VK_TAB

SENDKEY "メモ帳" VK_HOME +VK_END ^'C'

SENDKEY "メモ帳" &VK_F4

参考

POSTMESSAGE/SENDMESSAGE

SENDMENUKEY

SETCLIPBOARD


DDEEXECUTE
DDEEXECUTE[=フラグ] "ウィンドウタイトル" 実行コマンド

DDEサーバーにコマンドを実行させます。

ウィンドウタイトルの英大小文字と半角全角カタカナは同一視されます。ウィンドウタイトルは前方一致または後方一致で検索が行なわれます(タイトル検索の仕様)。

クラス名が分かっている場合、"@クラス名" とすればクラス名に対する処理が行なえます。クラス名を指定する場合も英大小文字も比較されますし、この場合前方一致とはなりません。

ハンドル番号が分かっている場合、"$ハンドル番号" とすれば指定のハンドル番号を持つウィンドウに対する処理が行なえます。ハンドル番号は16進数で指定します。

フラグに REAL を指定するとウィンドウタイトルは正確な検索が行なわれます。この場合英大小文字や半角全角カタカナも区別されますし、ファイル名が後に続く場合はその部分まで正確に記述する必要があります。

実行コマンドは通常 [] で囲います。

例えばプログラムマネージャにグループを追加するには実行コマンドを、"[CreateGroup(グループ名)]" のように指定します。

実行コマンドの内容については各サーバーアプリケーションのDDEについての資料が必要となります。

戻り値

  0	正常終了

  1	DDE対話確立エラー

  2	コマンド送出エラー

253	指定のウィンドウが見つからない

255	パラメーターが不足

例

DDEEXECUTE=REAL "プログラム マネージャ" [CreateGroup(WinBatchEh)]


クラス名

Windowsのアプリケーションが自分自身を識別するためのWindowsへの登録名です。通常クラス名はアプリケーション内部で使用される名称です。

通常クラス名は知ることができませんが、GETFOCUSやFINDWNDコマンドで取得することができます。


Windowsのアプリケーションのそれぞれのウィンドウに付けられた番号です。ハンドルはそれぞれのウィンドウに別々の番号が割り当てられますので、複数の同一アプリケーションが動作している場合でも、明確に区別することができます。

ハンドル番号は、GETFOCUSやFINDWNDコマンドで取得することができます。


ウィンドウタイトル検索の仕様

ウィンドウタイトルの検索は以下の曖昧さで一致の判断を行ないます。

前方一致:

指定した文字列とウィンドウタイトルの前方が一致。

例) 「メモ帳 - FILE.TXT」 ならば "メモ帳" の指定で一致。

後方一致:

指定した文字列とウィンドウタイトルの後方が一致。

例) 「メモ帳 - FILE.TXT」 ならば "FILE.TXT" の指定で一致。

英大小文字:

英大小文字は同一視される。半角の英字のみに有効で全角文字は同一視されません。

例) "FILE.TXT" "file.txt" "File.Txt" は同じとみなされます。

半角全角カタカナ:

半角と全角のカタカナは同一視される。カタカナのみで有効で英字の半角全角などは同一視されません。

例) "メモ帳" "ﾒﾓ帳" は同じとみなされます。

ウィンドウタイトルの検索では、上記以外の違い(半角と全角が区別される英数字や記号など)や空白を含む場合その個数なども一致の条件になるので気を付けてください。

なお、フラグに REAL を指定するなど完全一致で検索する場合は、曖昧な検索は一切行なわれません。

戻る


構造化

WinBatchEhではいくつかのコマンドについて構造化を行なって記述することができます。構造化を行なうと、条件判定による複数のコマンド行や繰り返しの実行、複雑な分岐などを GOTO を使用せずに記述でき、バッチを見やすく、また簡単にすることができます。

構造化を行なうには構造化の開始命令(IF や FOR, WHILE)と、終了命令(ENDIF や ENDFOR, ENDWHILE)、をペアにして必要とします。

構造化開始命令

        :

  実行するコマンド

        :

構造化終了命令


数値の指定

数値の指定は10進数または16進数で指定を行ないます。先頭を 0x または 0X で始めると16進数、それ以外なら10進数の指定となります。

数値の指定を行なう部分で演算を行なうこともできます。演算子は以下のものが使用可能です。

        <演算子>        <演算の内容>            <優先順位>

        RANDOM          乱数を発生              1

        ERRORLEVEL      ERRORLEVELの値          1

        環境変数名      環境変数の値            1

        ()              括弧(先に演算)          2

        *               乗算(掛け算)            3

        /               剰算(割り算)            3

        #               剰余(割り算をした余り)  3

        +               加算(足し算)            4

        -               減算(引き算)            4

        &               AND                     5

        $               OR                      5

        ^               XOR                     5

式は複数を混ぜ合わせて使用できますが、演算子は優先順位を持っており優先順位の高いもの(上記数値の小さいもの)ほど優先度が高く先に計算が行なわれます。

オーバーフロー等は考慮せずに16ビットバージョンでは16BITの精度(0～65535)で、32ビットバージョンでは32BITの精度(0～4294967295)で単純計算を行なっています。例えば(0-2)を行なうと16ビットバージョンでは65534が、32ビットバージョンでは4294967294が計算値になります。

但しERRORLEVELに関しては16ビット、32ビットバージョン共、0～65535 の範囲の数値となります。

RANDOMを使用すると乱数を発生することもできます。乱数を発生させるには、"RANDOM 数値" としてください。指定された数値以下の 0～(数値-1) の乱数を発生します。

環境変数を指定する場合は % で囲わなくても構いません。但し % を省略できるのは数値指定を行なう場合だけであることに注意してください。

戻る


仮想キーのコード(VK_xxx)
主な仮想キーの16進コードと定義文字列

仮想キーには以下の指定が行なえます。数値はすべて16進数です。(定義文字列を使用する場合は大文字で指定してください)。なおコマンドや状態により効かない場合があります。

        <数値>     <定義文字列>             <キーの内容>

        0x01       VK_LBUTTON               マウス左ボタン

        0x02       VK_RBUTTON               マウス右ボタン

        0x04       VK_MBUTTON               マウス中ボタン

        0x08       VK_BACK                  BackSpace

        0x09       VK_TAB                   TAB

        0x0c       VK_CLEAR                 Clear

        0x0d       VK_RETURN, VK_ENTER      Enter(Return)

        0x10       VK_SHIFT                 Shift

        0x11       VK_CONTROL               Ctrl

        0x1b       VK_ESCAPE                ESC

        0x20       VK_SPACE                 SPACE

        0x23       VK_END                   END

        0x24       VK_HOME                  HOME

        0x25       VK_LEFT                  ←

        0x26       VK_UP                    ↑

        0x27       VK_RIGHT                 →

        0x28       VK_DOWN                  ↓

        0x2d       VK_INSERT                Insert

        0x2e       VK_DELETE                Delete

        0x2f       VK_HELP                  HELP

        0x30～0x39                          0～9

        0x41～0x5a                          A～Z

        0x60～0x69 VK_NUMPAD0～9            Numkey 0～9

        0x6a       VK_MULTIPLY              *(アスタリスク)

        0x6b       VK_ADD                   +(プラス)

        0x6c       VK_SEPARATOR             ,(カンマ)

        0x6d       VK_SUBTRACT              -(マイナス)

        0x6e       VK_DECIMAL               .(ピリオド)

        0x6f       VK_DIVIDE                /(スラッシュ)

        0x70～0x87 VK_F1～F24               F1～F24

戻る


FAQ(良くある質問と回答集)

WinBatchEh FAQ(良くある質問と回答集)

WinBatchEh一般操作  バッチ言語  DOS関連  Windows関連  その他

★WinBatchEh一般操作

☆自慢じゃないけどマシンが速いので、バッチ実行ウィンドウの表示のスクロールが早すぎて困ってます

DOSではControl-Sで画面が一時停止しますが、WinBatchEhではそのキーは効きません。メッセージを確認するために表示を停止したい場合は、バッチ実行ウィンドウのタイトルバーをドラッグしてください。ドラッグしている間は表示が止まります。

☆「コマンドの直接実行」で動作を確認したいのですが入力するのが面倒です

バッチ内容表示ウィンドウがアクティブな状態で Control-C または Control-Insert を押すと、現在オープン中のバッチの表示している先頭行が、クリップボードにコピーされます。その後、「コマンドの直接実行」を選択すれば、先ほどクリップボードにコピーした内容が実行できます。

ちなみに、「コマンドの直接実行」で F1 キーを押すと、実行しようとしているコマンドのヘルプが表示される、という機能もあります。

★バッチ言語

☆ERRORLEVELが0のときだけGOTOで分岐したいのですが、必ず分岐していしまいます。なぜでしょうか?

次の様にすると必ずLABELにGOTOしてしまいます。

IF ERRORLEVEL 0 GOTO LABEL

これはERRORLEVELの判断は、「指定の数値以上のとき」に真となるためで、ERRORLEVELはつねに0以上の値が入っていますので、うまくいきません。

次の様にすればERRORLEVELが0のときだけ、GOTOが行なわれます。

IF ERRORLEVEL NOT 1 GOTO LABEL

または

IF %ERRORLEVEL%==0 GOTO LABEL

ちなみにERRORLEVELが1のときだけGOTOするには次の様にします。

IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 GOTO LABEL

または

IF %ERRORLEVEL%==1 GOTO LABEL

★DOS関連

☆DOSコマンドのリダイレクト出力を行なっても結果がファイルに保存されません

WinBatchEhのバッチ内でDOSコマンドのリダイレクションは行なえません。例えば "MEM > MEM_OUT.TXT" としても MEM_OUT.TXTには何も入りません。

この様な場合は、DOS用のバッチファイルを別に用意して、WinBatchEhからそのバッチファイルをCOMMAND.COMを経由して呼び出すようにしてください。

例えばDOSで動かすバッチを、DOSBAT.BAT として、

------

@ECHO OFF

MEM > MEM_OUT.TXT

------

のように作成しておき、WinBatchEhのバッチからこのバッチを、

COMMAND.COM /C DOSBAT.BAT

のように呼び出せばOKです。

☆DOSコマンドが終了した後いちいちウィンドウを閉じるのが面倒です

Windows95ではDOSコマンドが終了した後、終了した状態でウィンドウを手で閉じなければウィンドウが開いたままになることがあります。自動的にウィンドウを閉じるようにするには、エクスプローラで、実行するDOSコマンドのファイルのプロパティを表示し、「プログラム」タブの「プログラム終了時にウィンドウを閉じる」にチェックを入れてください。

★Windows関連

☆長いファイル名や空白を含んだファイル名を扱いたいのですが

32ビットバージョンでは、Windows95及びNT上での長いファイル名や空白を含んだファイル名に対応しています。なお、空白を含むファイル名を扱う場合は、"" でファイル名を囲う事を忘れないでください。

例: START "C:\Program Files\WinBatchEh\WINBAT32.EXE" "C:\Batch Files\foo.btw"

☆SENDKEYで文字列を送っているのですが、ある文字だけがうまくいきません

SENDKEYはアプリケーションによっては、全く文字が送れなかったり、ある文字だけ(例えばピリオドやイコールの記号だけ)が送れない事があります。

SENDKEYがうまく行かない場合は、クリップボード連携を使用すればうまく行く場合が、多いと思いますし、文字列を送る場合はこの方法の方が楽です。

クリップボード連携というと難しそうですが、やり方は簡単で、SETCLIPBOARDで送りたい文字列をクリップボードにコピーしておき、SENDKEYで Control-V のキーを送るだけです。

例:

    SETCLIPBOARD C:\WINDOWS\README.TXT

    SENDKEY "ファイルを開く" ^'V'

☆マイコンピュータやプリンタのフォルダを開きたいのですが

Windows95の特殊フォルダをオープンするには、EXPLORER.EXEの起動で、CLSIDを指定する必要があります。

主な特殊フォルダの開きかた(見にくいときはウィンドウの幅を広げて見てください。EXPLORERのパラメータは途中でスペースを入れたり改行せずに指定してください):

マイコンピュータ → EXPLORER.EXE ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}

ごみ箱 → EXPLORER.EXE ::{645FF040-5081-101B-9F08-00AA002F954E}

ダイヤルアップネットワーク → EXPLORER.EXE ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{992CFFA0-F557-101A-88EC-00DD010CCC48}

プリンタ → EXPLORER.EXE ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{2227A280-3AEA-1069-A2DE-08002B30309D}

ネットワークコンピュータ → EXPLORER.EXE ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{208D2C60-3AEA-1069-A2D7-08002B30309D}

コントロールパネル(CONTROL.EXEを起動する方が簡単です:-) → EXPLORER.EXE ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}

ブリーフケース(普通に開くだけです) → EXPLORER.EXE C:\WINDOWS\ﾃﾞｽｸﾄｯﾌﾟ\ﾌﾞﾘｰﾌｹｰｽ

☆コントロールパネル内のアイコンを簡単に起動したいのですが

コントロールパネルにあるアイコンは拡張子がCPLのファイルなのですが、このファイルはこのままでは実行できません。CPLのファイルの起動を行なうには次の様にします。

CONTROL.EXE CPLファイル

例: CONTROL.EXE NETCPL.CPL

ちなみにRUNDLL32.EXEを使用しても起動できます。

RUNDLL32.EXE Shell32.dll,Control_RunDLL NETCPL.CPL

☆ダイヤルアップネットワークの接続ダイアログをいきなり出したいのですが

Windows95のダイヤルアップネットワークの接続ダイアログを表示するには次の様にします。

RUNDLL32.EXE RNAUI.DLL,RnaDial ダイヤルアップの接続名

例: RUNDLL32.EXE RNAUI.DLL,RnaDial Internet 東京AP

ダイヤルアップ接続名はスペース文字などを含めて正確に記述する必要があります。

☆BTWファイルをWINBATCHに関連付けしたのですがバッチへのパラメータが渡りません

BTWへの関連付けを行なうときに、パラメータも記述してください。

例: C:\WINUTY\WINBATCH\WINBAT32.EXE "%1" %2 %3 %4 %5 %6 %7 %8 %9

なお、WinBatchEhのSAMPLE内の00SETUP.BTWでは、パラメーターを渡すように関連付けを行なっていませんので、00SETUP.BTWを実行した場合、後から手で設定し直す必要があります。

☆Windows95の「送る」に、作ったバッチファイルを入れたいのですが

WindowsのSendToフォルダに作成するショートカットのファイル名指定にはパラメータを与えることができないので、"WINBAT32.EXE FILENAME.BTW" などとしてバッチを起動することはできませんが、WBATCPでEXEファイルにして、SendToフォルダに入れておけばOKです。これはNIFTY-Serve:QFG00477 ＫＡＺＺさんに頂いたアイデアです。

☆ある拡張子のファイルをクリックしたときに、作ったバッチファイルが起動するようにしたいのですが

WBATCPでEXEファイルにすれば、関連付けを行なえます。関連付けで起動された場合、バッチファイルの %1 に対象となるファイル名が入ります。

☆Windows NTでログインしなくても自動的にバッチを起動したいのですが

tantanさんのservice.exeを使えば、とにかく簡単です。administratorな方には超お勧めです。詳しくはWinBatchEhをパワーアップのWINNT service for WINBAT32の項目をご参照ください。

★その他

☆ヘルプを印刷したいのですが面倒です

ヘルプを起動して自動的にメニューとボタンを押すバッチを組めば……、というのは冗談ですが、コマンドリファレンスのヘルプのソース(RTFファイル)を電子メール(NIFTY-ServeのバイナリメールまたはInternet MailのBASE64(MIME)形式)でお送りしますので、ご連絡ください。ビットマップが抜けてますので多少の手直しが必要かもしれませんが、Microsoft Wordなどで読み込んで、一挙にだーっと印刷できます(試験的にNIFTY-Serve FEXTのLIB-3にもuploadしていますので、NIFTY-Serveをご利用の方はこちらもご利用ください)。

☆WINBATCH.INIに設定する裏技があるのですか?

って項目がある事からして、ちょっとした裏技がありますのでご紹介します:-)

なお、むやみに変更すると動作がおかしくなるかもしれませんので、特に不満がないのでしたら無理に設定しない方が無難です^^;

すべて、[Setup]セクションです。始めはエントリーが存在しませんので、エディターなどでエントリーを追加してください。バージョンによってはサポートされていないものもあります。

EscAsExit=1

WinBatchEhのメインウィンドウで[ESC]キーを押すと、WinBatchEhを終了します。初期値は 0 で[ESC]キーは無効です

ToolBar=0

32ビットバージョンでツールバーを表示しません。初期値は 1 でツールバーを表示します。

MaxHistory=4

「ファイル」メニューの最近オープンしたファイルリストの表示数を設定します。数値には 0～9 を設定できます。0 を設定すると、ファイルリストを表示しません。初期値は 4 です。

WinBatch.ini=MYWINBAT.INI

WINBATCH.INIをWinBatchEhの実行ファイルとは別のディレクトリに作成します。ネットワークサーバーにWinBatchEhの実行ファイルを置き、WinBatchEhの動作環境はクライアント毎に変更したい場合などに利用してください。

任意のINIのファイル名をフルパスまたはファイル名のみで指定します。ファイル名のみを指定すると、WINDOWSのディレクトリになります。このエントリーが存在すると、WinBatchEhの実行ファイルと同じディレクトリ内のWINBATCH.INIのこれ以外のエントリーはすべて無視されます。


 音のテスト

SystemStart Windowsの起動


 音のテスト

SystemExit Windowsの終了


 音のテスト

SystemHand システム エラー


 音のテスト

SystemExclamation メッセージ(警告)


 音のテスト

SystemAsterisk メッセージ(情報)


 音のテスト

SystemQuestion メッセージ(問い合わせ)


 音のテスト

SystemDefault 一般の警告音


WinBatchEhをパワーアップ

WinBatchEhをパワーアップするソフトや方法をご紹介します。

Winbatch Enhancer Tool 32bit for Access 95(BTWTool)は、K.Abe(GEAR)氏が著作権を保有するフリーソフトウェアです。

ComWin及びComWin Input Box for WinBatchEh(cwwb)は、前寺正彦氏が著作権を保有するシェアウェアです。

WINNT service for WINBAT32はtantan氏が著作権を保有するフリーソフトウェアです。

ぜとの拡張子実行は、ぜと氏が著作権を保有するフリーソフトウェアです。

Microsoft Windows95及びMicrosoft Windows NT、Microsoft Access for Windows 95は、Microsoft Corporationが著作権を保有する市販ソフトウェアです。

☆Winbatch Enhancer Tool 32bit for Access 95 (BTWTool)

Winbatch Enhancer Tool 32bit for Access 95(BTWTool)は、K.Abe(GEAR)さん(PC-VAN:TZF99986)が作られた、WinBatchEhのための統合開発環境です。

WinBatchEh単体では開発用の環境が全く用意されておらず、バッチの管理やエディタでの編集も手動で行なわなければなりませんが、BTWToolにより開発時のそうした負担を無くす事ができます。

なお、このシステムを動作させるには、Microsoft Access for Windows 95 が必要です。

主な登録先:PC-VAN:SLABO OSL-6, NIFTY-Serve:FWINAL LIB-5/FGALTS LIB-4

☆ComWin Input Box for WinBatchEh (cwwb)

ComWin Input Box for WinBatchEh(cwwb)は、前寺正彦さん(NIFTY-Serve:SGQ00310)が作られた、ComWinのコマンドをWinBatchEh上で動作させるモジュールです。

ComWinはコンソール環境をこの上もなく拡張するソフトですが、このモジュールを使用する事により、ComWinのコマンド及びComWin用に作成された豊富なコマンドを、WinBatchEh上で実行できるようになります。

主な登録先:NIFTY-Serve:FWINAL LIB-5/FGALTS LIB-4

☆WINNT service for WINBAT32

WINNT service for WINBAT32は、tantanさん(NIFTY-Serve:SGL00213)が作られたWinBatchEhのバッチをNTのサービスで自動起動するための設定プログラムです。

Windows NTでサービスにバッチを組み込んで、マシンを起動するだけでログインしなくてもWinBatchEhによる自動処理などを行なうことが、いとも簡単に実現できます。

主な登録先:NIFTY-Serve:FEXT LIB-3

☆LHA command for WinBatchEh and UNLHA.DLL (WBLHA)

LHA command for WinBatchEh and UNLHA.DLL(WBLHA)は、WinBatchEh で UNLHA.DLL(UNLHA32.DLL) をサポートする外部コマンドユーティリティーです。

WinBatchEh 上のバッチでこのコマンドを呼び出すことにより、バッチ内でLHAファイルの処理を簡単に行なうことができます。

主な登録先:NIFTY-Serve:FWINAL LIB-5/FGALTS LIB-4

☆ExitWindows for WinBatchEh32 (WBEXIT16)

ExitWindows for WinBatchEh32(WBEXIT16)は、WinBatchEhの32ビットバージョンで16ビットバージョンと同等のEXITWINDOWSコマンドなどを実現するコマンドです。32ビットバージョンでRESTARTWINDOWSやEXITWINDOWSEXECコマンドを実行したい場合に使用してください。

主な登録先:NIFTY-Serve:FWINAL LIB-5/FGALTS LIB-4

☆Batch File Compiler for WinBatchEh (WBATCP)

Batch File Compiler for WinBatchEh(WBATCP)は、WinBatchEh 用にバッチファイルのコンパイル及びリコンパイルを行なうユーティリティです。

コンパイルを行なっても別に速度が速くなるわけでもありませんし、サイズが大きくなるだけでメリットがなく(関連付けができるという程度のメリットはありますが)、ただの見栄ツールですが、バッチファイルによるプログラミングの気分をより深く味わいたい場合には、意味があるかも知れません。

主な登録先:NIFTY-Serve:FWINAL LIB-5/FGALTS LIB-4

☆ぜとの拡張子実行 (ZEXT)

WinBatchEh 用のユーティリティではありませんが、その道ではちょっと有名なあのぜとさん(NIFTY-Serve:SGL00536)が作られたWinBatchEhで動作するバッチによるアプリケーションです。

同じ拡張子の関連付けを最大8種類まで拡張、起動時に任意のWAVを鳴らす、壁紙の変更など豊富な機能が用意されています。

主な登録先:NIFTY-Serve:FWINAL LIB-15/FGALTS LIB-4


著作権・転載条件・作者への連絡先

WinBatchEhの著作権・転載条件について

WinBatchEhの著作権について

WinBatchEhはシェアウェアです。著作権は放棄しておりませんので、改造などは行なうことができませんし、WinBatchEhを無断で販売を行なうようなこともできません。

WinBatchEhの転載について

配布/転載については制限を設けませんし許可も必要ありませんので自由に行なっていただければと思います。作者への連絡なども必要ありません。

雑誌や書籍でご紹介される場合や、添付する場合はその旨を先にご連絡ください。また、できれば掲載誌をお送りいただけるとありがたいです。

作者への連絡先

もし、お気付きの点や要望等がありましたら下記までご連絡願います。もちろん、NIFTY-Serve の会議室(FEXT MES 3/FGALTS MES 12)に書き込んで頂いても結構です。

ご質問などを頂く場合は機種とOS、それにWinBatchEhのバージョンを明記して頂けますと助かります。

バグの対処などは可能な限り行ないますが、本ソフトウェアを使用した為に生じたいかなる結果についても、作者は責務を負わないこととします。とは言え、バグ報告や要望はじゃんじゃん受け付けますので(実現に致るかどうかは定かではありませんが^^;)、お気軽にご連絡を頂ければと思います。

        清水 洋平(Paci)    NIFTY-Serve   SDI00618

                           Internet-Mail SDI00618@niftyserve.or.jp


シェアウェア

シェアウェアについて

☆WinBatchEhはシェアウェアです

WinBatchEh はシェアウェアです。送金する価値があるとご判断された場合は、送金をお願いします。

送金頂きますと、WinBatchEh に登録を行なう ID をお知らせ致します。

ID の登録を行なわなくても、機能制限等は一切ありませんが試用期間の 2 週間を過ぎると、ID 登録に関する案内が起動時に時折表示されます。

ID の登録は一番始めに起動を行なったときのウィンドウの「登録を行う」、もしくは「ファイル」メニューの「登録」を選択する事によって行なえます。ご使用される方のお名前(または会社名・学校名)と、登録 IDを入力してください。

送金は一度行なえばバージョンアップがあってもそのまま新しいバージョンでもご利用いただけます。また 1 つの ID で 16 ビット版と 32 ビット版の両方で使用可能です。

ID 登録は一度行なえば、WINBATCH.INI ファイルに書き込みが行なわれますので、バージョンアップ版と入れ替えるごとに ID 番号の「登録」を行なうようなことは不要です。

なお、WINBATCH.INI ファイルは実行ファイル(WINBATCH.EXE または WINBAT32.EXE)と同じディレクトリに作成されますので、このファイルは削除しないようにしてください。間違って削除した場合は再度 ID の「登録」を行なってください。ID 番号を紛失してしまった場合は、ご連絡いただければ再度発行いたします。

送金するだけの価値は見いだせないけれども、使ってやろうじゃないか、と言うような場合は、登録なしで使い続けていただいても構いません。但しその場合は是非どう言った面が物足りないかと言ったご要望をお寄せいただけますようにお願いします。

要望やバグの報告をいただく際でも、送金のありなしは関係ありません。送金されて無くてもどしどしお寄せください。むしろいろいろなご意見をいただいた場合、開発にご協力いただいたお礼として、登録 ID を贈呈させていただきたいと考えております。

☆PDS 及びフリーソフトウェアの作者の方へ

PDS 及びフリーソフトウェア(プログラムではないものも含みます)の作者の方がご自身でお使いになる場合は、登録 ID を贈呈させていただきたいと思っています。お作りになったソフト名などを次の様な感じで簡単にお書き頂いてご連絡ください(WinBatchEh の感想などはお書き頂く必要はありません)。

　　　　WinBatchEh 登録ID発行依頼

　　　　手掛けたソフト名: ソフト名をご記入ください

　　　　登録先: ファイルが登録されている場所をご記入ください

PDS 及びフリーソフトウェアの作者の方はご送金なさらずに、必ずこの方式で登録をして頂けますようにお願いします。

☆個人で使用される場合の送金の方法について

個人で送金される場合、NIFTY-Serve のシェアウェア送金代行システムをご利用頂くと便利です。"GO SWREG"でレジストレーションセンターに行く事ができ、その中の「送金コーナー」で送金が行なえます。

　　　　WinBatchEh の SW番号は 1473 です。

　　　　金額は 500 円です。(別途消費税が加算されます)。

送金代行システムで送金を行なうと、作者に送金されたことが分かる仕組みになっていますので、その事を作者が確認次第、電子メールにて登録 ID をご連絡いたします。特にご連絡を頂く必要はありませんが、1 週間程度経っても登録 ID の連絡が来ない場合は、ご催促の連絡を頂けますようにお願いします。

クレジットカード等での決済にされてない場合、シェアウェア送金代行システムは使用する事ができません。この場合、銀行振込または郵便振替で送金してください。金額は同じく 500 円です(消費税は不要です)。口座番号については後述します。それ以外の方法(定額小為替など)を希望される場合は、送付先をお知らせ致しますので、その旨をご連絡ください。

☆法人で使用される場合の送金の方法について

会社などで不特定多数の方が利用される場合は、利用されるマシンの台数分送金をお願いします。この場合は 1 台につき 500 円です(消費税は不要です)。但し 10 台以上の場合は次の様に若干の割り引きを行なっております。

    1～  9ライセンス	@500円

   10～ 19ライセンス	@450円

   20～ 39ライセンス	@400円

   40～ 79ライセンス	@350円

   80～159ライセンス	@300円

上記は 1 台あたりの金額ですので、台数を掛けて計算してください。また、これ以上の台数の場合は、別途ご連絡をお願いします。

領収書については必要であればお送りいたしますので、御請求ください(通常は作者個人名での発行となります)。

なお、学校でのコンピューターを会得するための授業が目的で使用される場合は送金の必要はありません。ご連絡頂ければ、ID を贈呈させていただきたいと思います。

☆特定のバッチファイルだけを動かす場合(バッチファイルに対するライセンス)

WinBatchEh をある特定の処理を自動化するためだけに、数多くのマシンで使用するような場合には、その処理の為の特定のバッチファイルだけが動くライセンスとすることもできます。

このライセンスの場合、特定のバッチファイルのみを動作させる事ができますので、そのバッチファイル名に対するライセンスとなります(ライセンスされていないファイル名のバッチファイルは動作しません)。

もし、インストールするすべてのマシンで、WinBatchEh のすべての機能を必要とするのではなく、特定のバッチファイルだけが動けばよい、と言うような場合はこちらのライセンスもご利用ください。

バッチファイル名に対するライセンスは、台数に関係なく 10,000円です。

但し、商用で利用する場合は、目的によって別の料金となりますので、別途ご連絡をお願いします。

なお、このライセンスは WinBatchEh バージョン 1.24 から追加されました。

☆銀行振込・郵便振替で送金をされる場合

銀行振込または郵便振替で送金される場合は、以下の口座に振り込みをお願いします。

    ☆銀行振込

　　　　第一勧業銀行

　　　　昭和通支店 (店番号 033)

　　　　口座の種類: 普通預金

　　　　口座番号: 1604747

　　　　名義: 清水 洋平 (シミズ ヨウヘイ)

    ☆郵便振替

記号: 14150

番号: 40397811

口座名義: 清水 洋平

銀行振込または郵便振替の場合、登録 ID をお知らせするためのご連絡先が分かりませんので、振込・振替を行なった後、電子メールで作者までその旨を以下の様な形で連絡をお願いします。

連絡先: 清水 洋平

NIFTY-Serve:SDI00618, Internet-Mail:SDI00618@niftyserve.or.jp

----------------------------------------------------

WinBatchEh 送金報告

○月○日送金しました。

登録種別: 個人 または 法人

送金金額: 例:500円

送金手段: 銀行振込 または 郵便振替

使用者名: 使用者名をご記入ください

----------------------------------------------------


WinBatchEhのAPI

WinBatchEh API リファレンス

APIリファレンスはSAMPLEディレクトリ内のテキストファイルに移動しました。

WinBatchEh API リファレンスの参照