|
● 説明。
(1)「ファイル ?.vbs 」の記述の下にある VBSコードを、
?.vbs という名前で保存します。
(2) ?.vbs を開いている秀丸上で、メニュー「その他」->「プログラム実行(X)」
をクリックしてください。
注意。
//nologo のところが、file://nologo に変換されているかも。
# ってことは、ここも2重になっているじゃん。(^^;)
---------------------------------------------------------------
● 標準出力だけを秀丸で取得する場合。
'ファイル a.vbs
dim i
for i = 1 to 5
WScript.StdOut.WriteLine "Hello, VBS " & cstr(i)
next
'メニュー「その他」->「プログラム実行(X)」のコマンドラインに入力する文字列。
' cscript //nologo a.vbs >con
---------------------------------------------------------------
● DOS アプリ風で、対話的に実行したい場合。
'ファイル b.vbs
dim cin, cout, cmd
set cin = WScript.StdIn
set cout = WScript.StdOut
cout.write "Prompt>"
cmd = cin.ReadLine
cout.WriteLine "the command is " & cmd
cout.WriteLine "bye!"
set cin = nothing
set cout = nothing
'メニュー「その他」->「プログラム実行(X)」のコマンドラインに入力する文字列。
' command.com /c cscript //nologo a.vbs
' ( 注意、WindowsNT, 2000, XP? は、command.com ではなく cmd.exe にする )
' DOS窓を終了させたくない場合。
' command.com /k cscript //nologo a.vbs
---------------------------------------------------------------
● 標準入出力は使わず、ダイアログを使う場合。
'ファイルc.vbs
msgbox "Hello VBS, MsgBox"
WScript.echo "Hello VBS, Echo"
'メニュー「その他」->「プログラム実行(X)」のコマンドラインに入力する文字列。
' wscript a.vbs
' ( DOS窓が気にならないなら、以下でも問題なし )
' command.com /c cscript //nologo c.vbs
---------------------------------------------------------------
● オマケ。wsf ファイルを使う。
<package>
<comment>
ファイル d.wsf という名前で保存する。
これを使うと、JScript, VBScript, PerlScript のイイとこ取り。
ちなみに VBS を使って Excel の定数とか参照するには、WSF 方式しかないみたい。
メニュー「その他」->「プログラム実行(X)」のコマンドラインに入力する文字列。
wscript //job:main d.wsf
cscript //job:main d.wsf
</comment>
<job id="main">
<script language="VBScript">
'InputBoxを出して入力を返す関数の定義
function vbinputbox( sPropmt,sTitle,sDefault )
vbinputbox = InputBox( sPropmt, sTitle, sDefault )
end function
</script>
<script language="JScript">
//上で定義した関数を使う
var strRet = vbinputbox("なんか入力して","入力ボックスのタイトル","初期値");
WScript.Echo(strRet);
</script>
</job>
</package>
---------------------------------------------------------------
● マクロ化。
// vbs.mac
$$ext = rightstr(basename,4);
if( $$ext != ".vbs" || $$ext != ".wsf" ){ beep; endmacro; }
if( existfile(winsysdir + "\\cmd.exe") ) $$cmd = "cmd.exe";
else $$cmd = "command.com";
// run "cscript //nologo " + basename2 + " >con";
run $$cmd + " /c cscript //nologo " + basename2;
// run $$cmd + " /k cscript //nologo " + basename2;
// run "wscript " + basename2;
// run "wscript //job:main " + basename2;
endmacro;
では。
|
|