Tech-Ezo (Hokkaido PC and Network Users Group)
 Top Page  |  What's Tech-Ezo  |  Next Seminar  |  Seminar Log  |  Seminar Plan  |  Tips  |  life  |  Link  |
Scr.003 ステップアップ WSH - 使えそうなスクリプトを作って見よう
前ページへ   [ステップアップ WSHへ戻る]   次ページへ

 Level.1では、コマンドプロンプトから起動からcscriptでスクリプトを起動しましたが、wscriptやダブルクリックで起動したときにはちょっと面倒な状態になります。Level.2ではこの状態をなんとかします。



■  Level.2  メッセージの表示方法をちょっと工夫してみる
■ ■

 冒頭にありますように、wscriptやダブルクリックで起動したときに、1つ1つのファイルやフォルダ毎にメッセージボックスが表示され、いちいち[OK]をクリックしなければならないという面倒な状態を何とかしたいと思います。

1つのメッセージボックスに複数行表示する

 何度も[OK]ボタンをクリックするのが面倒なので、1つのメッセージボックスの中に複数のファイル名を入れて見ます。ここでは、「ファイル一覧」と「フォルダ一覧」で2回メッセージボックスが表示されるようにしてみました。

level02.vbs
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
Set fso = CreateObject("Scripting.FileSystemObject")
Set src = fso.GetFolder("C:\script\tips")    ' 対象フォルダの指定

' 指定のフォルダに格納された各ファイルを処理する
tmpMessage = "ファイル一覧:" & vbNewLine
For Each FileName In src.Files
    tmpMessage = tmpMessage & FileName & vbNewLine
Next
WScript.Echo tmpMessage

' 指定のフォルダに格納された各サブフォルダを処理する
tmpMessage = "フォルダ一覧:" & vbNewLine
For Each FolderName In src.Subfolders
    tmpMessage = tmpMessage & FolderName & vbNewLine
Next
WScript.Echo tmpMessage
※ level1.vbsからの変更箇所(行追加や修正したところ)は行番号をオレンジにしました。

 それでは変更ポイントを見てみましょう。

5行目

005
tmpMessage = "ファイル一覧:" & vbNewLine

 5行目で、メッセージ編集用の変数(tmpMessage)の初期化を行っています。1行目に見出しとして「ファイル一覧:」をセットした状態となっています。行の後ろにある"& vbNewLine"は、"&"は文字列連結を意味し、vbNewLineは改行を意味します。例えば"Tech-Ezo " & "Round23"とすると、結果は"Tech-Ezo Round23"となります。つまり、"ファイル一覧:" & vbNewLineは"ファイル一覧:"と改行(vbNewLine)連結しているのです。

6行目〜9行目

006
007
008
009
For Each FileName In src.Files
    tmpMessage = tmpMessage & FileName & vbNewLine
Next
WScript.Echo tmpMessage

 6行目および8行目は先程から変更してしません。c:\script\tipsフォルダ内に格納されたファイルのループとなっています。ループするたびにFileNameにファイル名が格納されるのは先程説明した通りです。7行目はLevel1と違い、Echoでメッセージ表示を行っていたところを、メッセージ格納用の変数(tmpMessage)のお尻にファイル名と改行コードをくっ付けるコードに変更しました。

 この行の実行の度に、「ファイル一覧:(改行)」→「ファイル一覧:(改行)C:\script\tips\R23_001.txt(改行)」→「ファイル一覧:(改行)C:\script\tips\R23_001.txt(改行)c:\script\tips\R23_002.txt(改行)」...のように、ファイル名を連結して行きます。

 そして、全てのファイル名を連結した後(ファイルのループが終わった後)に、9行目でtmpMessageの表示を行っています。こうすることで、1つのメッセージボックスの中に複数行の表示を行うことができます。

 12〜16行目も、対象物がファイルからサブフォルダになっただけで全く同じ変更をしていますので見比べてみて下さい。

実行してみましょう

 出来上がったlevel2.vbsをダブルクリックかwscriptで実行して見ましょう。下図のような2つのメッセージボックスが表示されれば成功です。

level2.vbsファイルをダブルクリックして実行

 ついでにcscriptで実行してみるとこのようになります。

C:\script>cscript level2.vbs > kekka.txt

C:\script>type kekka.txt
ファイル一覧:
C:\script\tips\R23_001.txt
C:\script\tips\R23_002.txt
C:\script\tips\R23_003.txt
C:\script\tips\R23_004.txt
C:\script\tips\R23_005.txt
C:\script\tips\dummy.doc
C:\script\tips\dummy.xls

フォルダ一覧:
C:\script\tips\Linux
C:\script\tips\Script
C:\script\tips\Windows


C:\script>



前ページへ   [ステップアップ WSHへ戻る]   次ページへ
-
※全ては自己責任でお願いします。
※当サイトに関するご連絡は tomomo_c@hotmail.com までお願いします。
最終更新日 2004.3.22