[リストへもどる]
一括表示

投稿時間:2002/12/02(Mon) 15:11
投稿者名:kuma
Eメール:
URL :
タイトル:
コマンドラインにメッセージを返すには?
コマンドラインから引数を受け取って起動するアプリケーションを作っています。
引数の受け取りは問題なくできるのですが、コマンドラインに処理結果などのメッセージを返すことが上手くできません。
初歩的な質問で申し訳ありませんが、宜しくお願いいたします。

投稿時間:2002/12/02(Mon) 16:21
投稿者名:takk
Eメール:takk_neo@hotmail.com
URL :
タイトル:
Re: コマンドラインにメッセージを返すには?
VBにはそのような機能はありません。
VB.NETではコマンドライン用のアプリを作れるらしいですが、
僕自身 まだVB.NETにはまだ手を出していないんで良く分からないですf^^;

.NET以前のVBでも、ActiveX.dllとVBScriptを使用すれば一応出来ないことは無いらしいですが…
(こっちも詳しくは知りません)。

もしCが出来るならCで作った方が無難ですね。

投稿時間:2002/12/03(Tue) 12:46
投稿者名:kuma
Eメール:
URL :
タイトル:
Re^2: コマンドラインにメッセージを返すには?
ありがとうございました。
助かりました。

> VBにはそのような機能はありません。
> VB.NETではコマンドライン用のアプリを作れるらしいですが、
> 僕自身 まだVB.NETにはまだ手を出していないんで良く分からないですf^^;
>
> .NET以前のVBでも、ActiveX.dllとVBScriptを使用すれば一応出来ないことは無いらしいですが…
> (こっちも詳しくは知りません)。
>
> もしCが出来るならCで作った方が無難ですね。

投稿時間:2002/12/03(Tue) 14:29
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
コンソール出力のサンプル
> VB.NETではコマンドライン用のアプリを作れるらしいですが、

VB.NETを使った、簡単なサンプルを書いておきます。
なお、実行には.NET Frameworkが必要です。

# 最近のOSであれば、Windows Updateを行っていれば、
# ランタイムがインストールされていると思います。

Option Explicit
Public Class ConsoleTestSample
  Public Shared Sub Main()
    Dim L As Integer

    L = 1234 + 5678
    System.Console.Write(" 2進数では、{0}で、", System.Convert.ToString(L, 2))
    System.Console.WriteLine("10進数では、{0}です。", L.ToString())

    System.Console.Write("[Enterキーを押すと終了します]")
    System.Console.Read()
  End Sub
End Class

上記を C:\Sample.vb としてファイルに保存してください。

その上でコマンドプロンプトを起動して、.NET Frameworkに含まれる
VBC.EXEのあるフォルダに移動してください。
(私の環境では、C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\ でした)

そして、そのフォルダにて、
  vbc.exe /t:exe /out:"C:\Sample.exe" "C:\Sample.vb"
と実行すれば、C:\Sample.exe ができあがります。



> .NET以前のVBでも、ActiveX.dllとVBScriptを使用すれば一応出来ないことは無いらしいですが…
> (こっちも詳しくは知りません)。

こちらは、こんな感じ。
とりあえず、ActiveX DLLを使わない場合のサンプルです。

<?xml version="1.0" encoding="Shift_JIS"?>
<package xmlns="http://schemas.microsoft.com/WindowsScriptHost">
<job id="Sample">
<script language="VBScript">'<![CDATA[
Option Explicit
Dim L
Dim stdOut, stdIn, buf
Set stdOut = WScript.StdOut
L = 1234 + 5678
stdOut.Write " 8進数では、"
stdOut.Write Oct(L)
stdOut.Write "で、16進数では、"
stdOut.Write Hex(L)
stdOut.WriteLine "です。"
stdOut.WriteLine "[Enterキーを押すと終了します]"
Set stdOut = Nothing
Set stdIn = WScript.StdIn
Do Until stdIn.AtEndOfLine
   buf = stdIn.Read(1)
Loop
Set stdIn = Nothing
']]></script>
</job>
</package>


上記を、C:\Sample.wsf として保存してください。
( <?xml version="1.0"〜?>の行が 1行目になるようにして下さい)
そして、コマンドプロンプトから、

  CScript.exe C:\Sample.wsf

のようにして呼び出します。
# 上記では、wsfファイルを用いていますが、vbsファイルでもコード部は同等です。