メイン画像

VBScript - コンソール入力

VBScript - コンソール入力


VBScript でコンソール入力を読み取る方法をまとめます。

なお、この方法は CScript.exe でスクリプトを実行したときのみ使えます。
WScript.exe で実行すると、実行時エラー(ハンドルが無効です)になります。

標準入力を読み取る

標準入力を扱うには WScript.StdIn プロパティを使います。

WScript.StdIn プロパティを使って標準入力を読み取るには、次のメソッドとプロパティを利用します。

  • Read メソッド - 指定した文字数を読み取る
  • ReadAll メソッド - すべて読み取る
  • ReadLine メソッド - 1行読み取る
  • Skip メソッド - 指定した文字数の読み取りをスキップ
  • SkipLine メソッド - 次の行の読み取りをスキップ
  • AtEndOfLine プロパティ - 行の最後に到達したかどうか
  • AtEndOfStream プロパティ - 入力データの最後に到達したかどうか
    • (いまいち使いどころが分からない。True になることはあるのか?)

例)改行文字を読み取るまで1文字ずつ読み取る

Do While Not WScript.StdIn.AtEndOfLine
    WScript.Echo WScript.StdIn.Read(1)
Loop

例)1行読み取る

Enter を入力すると、それまでに入力したデータがすべて出力されます。

WScript.Echo WScript.StdIn.ReadLine

例)一括で最後まで読み取る

Ctrl + Z を入力すると、それまでに入力したデータがすべて出力されます。

WScript.Echo WScript.StdIn.ReadAll

例)指定した文字数の読み取りをスキップする

5文字の読み取りをスキップし、それより後ろの文字列を出力します。

たとえば “ABCDEFG” と入力した場合、“FG” と出力されます。

WScript.StdIn.Skip 5
WScript.Echo WScript.StdIn.ReadLine

StdIn の実体は TextStream

StdIn の実体は TextStream オブジェクトです。

WScript.Echo TypeName(WScript.StdIn)
' → TextStream

TextStream オブジェクトのメソッドやプロパティが使えるはず。

参考:TextStream オブジェクト | Microsoft Learn


アカウントを作成 して、もっと沢山の記事を読みませんか?


この記事が気に入ったら ことりと さんを応援しませんか?
メッセージを添えてチップを送ることができます。


この記事にコメントをしてみませんか?


酒とアクアリウムが最近の楽しみ。

おすすめの記事