その他
CALL − 他のバッチ(スクリプト)の呼び出し
<BAT(test.bat)>
@echo off
echo sub.batを実行します。
call sub.bat 55 ABC
echo sub.batの実行を終了しました。
|
<sub.bat>
echo 第1パラメータは"%1"です。
echo 第2パラメータは"%2"です。
|
<結果>
sub.batを実行します。
第1パラメータは"55"です。
第2パラメータは"ABC"です。
sub.batの実行を終了しました。
|
<VBS(test.vbs)>
Set shell = WScript.CreateObject("WScript.Shell")
shell.Popup "sub.vbsを実行します。", 3 ' 3= 3秒で自動的にメッセージボックス閉じる。
shell.Run "sub.vbs 55 ABC", 1, true
shell.Popup "sub.vbsの実行を終了しました。", 3
|
<sub.vbs>
Set shell = WScript.CreateObject("WScript.Shell")
s1 = WScript.Arguments.Unnamed.Item(0)
s2 = WScript.Arguments.Unnamed.Item(1)
WScript.Echo "第1パラメータは" & s1 & "です。"
WScript.Echo "第2パラメータは" & s2 & "です。"
|
<JS(test.js)>
shell = WScript.CreateObject("WScript.Shell");
shell.PopUp("sub.jsを実行します。", 3); // 3= 3秒で自動的にメッセージボックス閉じる。
shell.Run("sub.js 55 ABC", 1, true);
shell.PopUp("sub.jsの実行を終了しました。", 3);
|
<sub.js>
shell = WScript.CreateObject("WScript.Shell")
s1 = WScript.Arguments.Unnamed.Item(0);
s2 = WScript.Arguments.Unnamed.Item(1);
WScript.Echo("第1パラメータは" + s1 + "です。");
WScript.Echo("第2パラメータは" + s2 + "です。");
|
CHOICE − Y/N を選択させる
<BAT> (choiceコマンドは Windows 2000、 WindowsXP 等には存在しません。)
@echo off
choice
if errorlevel 2 goto :NO
:YES
echo Yが押されました。
goto :END
:NO
echo Nが押されました。
:END
|
<VBS>
Set shell = WScript.CreateObject("WScript.Shell")
ret = shell.Popup("選択してください。", , , 4) '4=はい&いいえ
Select Case ret
case 6 WScript.Echo "「はい」が押されました。"
case 7 WScript.Echo "「いいえ」が押されました。"
End Select
|
<JS>
shell = WScript.CreateObject("WScript.Shell");
ret = shell.Popup("選択してください。", -1, "", 4); //-1=自動で閉じない、4=はい&いいえ
switch(ret){
case 6: WScript.Echo("「はい」が押されました。");
break;
case 7: WScript.Echo("「いいえ」が押されました。");
break;
}
|
DATE − 日付の表示
<BAT>
<VBS>
<JS>
s = "";
d = new Date();
s += d.getYear() + "/" + (d.getMonth()+1) + "/" + d.getDate();
WScript.Echo(s);
|
ECHO − メッセージの表示
<BAT>
<VBS>
<JS>
shell = WScript.CreateObject("WScript.Shell");
shell.PopUp("こんにちは。", 2, "メッセージ", 64); // 2=秒数、64=[i]アイコン
|
ここではVBS版とJS版で異なる方法を示した。Echoはボタンを押すまで閉じない。Popupは指定秒数で閉じる。
EDIT − テキストエディターの起動
<BAT> (editコマンドは Windows 2000、 WindowsXP 等には存在しません。)
/bはモノクロ画面で起動させるオプション。
<VBS>
Set shell = WScript.CreateObject("WScript.Shell")
Set fs = WScript.CreateObject("Scripting.FileSystemObject")
Set cfol = fs.GetFolder(".")
s = "edit.exe " & cfol.ShortPath & "\sub.vbs /b"
shell.Run s
|
VBS版ではBAT版と同じエディタ(edit.exe)を起動してみた。edit.exeを起動すると、カレントディレクトリが変わってしまうので注意が必要。メモ帳等の起動はTYPEを参照のこと。 (edit.exeは Windows 2000、 WindowsXP 等には存在しません。)
<JS>
shell = WScript.CreateObject("WScript.Shell");
shell.Run("notepad.exe sub.vbs");
|
JS版ではメモ帳を起動させた。
PAUSE − 何かキーが押されるまで処理を停止する
<BAT>
<VBS>
Set shell = WScript.CreateObject("WScript.Shell")
shell.Popup "続けるにはボタンを押してください。"
|
<JS>
shell = WScript.CreateObject("WScript.Shell");
shell.Popup("続けるにはボタンを押してください。");
|
REM − 注釈
<BAT>
<VBS>
<JS>
SET − 環境変数の表示
<BAT>
<VBS>
Set shell = WScript.CreateObject("WScript.Shell")
Set list = shell.Environment("PROCESS")
For Each temp In list
s = s & temp & vbCrLf
Next
WScript.Echo s
|
<JS>
shell = WScript.CreateObject("WScript.Shell");
list = new Enumerator( shell.Environment("PROCESS") );
var ret = "";
for(; !list.atEnd(); list.moveNext())
ret = ret + list.item() + "\n";
WScript.Echo(ret);
|
START − アプリケーションの起動
<BAT>
start notepad.exe sub.vbs
|
<VBS>
Set shell = WScript.CreateObject("WScript.Shell")
shell.Run "notepad.exe sub.vbs", 3, true
WScript.Echo "メモ帳が閉じられました。"
|
<JS>
shell = WScript.CreateObject("WScript.Shell");
shell.Run("notepad.exe sub.vbs", 2);
WScript.Echo("スクリプトを終了します。");
|
VBS版とJS版はメモ帳を異なる状態で起動した。Runメソッドの3つの引数に関しては以下を参照のこと。
obj.Run( @ファイル名, Aウインドウスタイル, B同期 )
@はファイル名または実行ファイル名を指示。
Aはウインドウの大きさ示す
1 デフォルトの大きさ(省略可)
0 非表示
2 最小(アイコン)表示
3 最大表示
Bはtrueでそのアプリが閉じられるまでスクリプトは待機し、
false(省略可)とすると待機しない。
|
TIME − 時刻の表示
<BAT>
<VBS>
<JS>
d = new Date();
WScript.Echo( d.toLocaleString() );
|
JS版のtoLocaleString()では日付も表示されてしまうが、この表示はマシンにより異なるので、時刻のみを取り出す方法を一般化することはできないようだ。
Spicaさんのご指摘により以下のように訂正させていただきます(2008/10/20)。
d = new Date();
t = "";
t = d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds();
WScript.Echo(t);
|
もくじへ
元のページに戻る
当Webページの一部または全部を筆者(saikawa)に無断で複写、複製、転載することを禁じます。