MW211 EXIT

devlog
VBS/配列の末尾に追加して文字列結合
2019年09月28日
「System.Collections.ArrayList」オブジェクトで
Join()ができなさそうだったので、クラスを自前で作った。
┌──────────────────────────────────────┐
│'***************************************************************************│
│'  クラス:配列                                                             │
│'***************************************************************************│
│Class ClassArray                                                            │
│    Private mArray()                                                        │
│    Private mIsInit                                                         │
│    '=======================================================================│
│    '  コンストラクタ                                                       │
│    '=======================================================================│
│    Private Sub Class_Initialize                                            │
│        mIsInit = True                                                      │
│    End Sub                                                                 │
│    '=======================================================================│
│    '  デストラクタ                                                         │
│    '=======================================================================│
│    Private Sub Class_Terminate                                             │
│    End Sub                                                                 │
│    '=======================================================================│
│    '  メソッド:(末尾に)追加                                               │
│    '=======================================================================│
│    Public Sub add(theValue)                                                │
│        If mIsInit Then                                                     │
│            mIsInit = False                                                 │
│            ReDim mArray(0)                                                 │
│        Else                                                                │
│            ReDim Preserve mArray(UBound(mArray) + 1)                       │
│        End If                                                              │
│        mArray(UBound(mArray)) = theValue                                   │
│    End Sub                                                                 │
│    '=======================================================================│
│    '  メソッド:(結合し)文字列を取得                                       │
│    '=======================================================================│
│    Public Function getString(theDelimiter)                                 │
│        getString = Join(mArray, theDelimiter)                              │
│    End Function                                                            │
│    '=======================================================================│
│End Class                                                                   │
│'***************************************************************************│
├──────────────────────────────────────┤
│Dim theArray                                                                │
│Set theArray = New ClassArray                                               │
│theArray.add("あいうえお")                                                  │
│theArray.add("かきくけこ")                                                  │
│theArray.add("さしすせそ")                                                  │
│MsgBox theArray.getString("、")                                             │
└──────────────────────────────────────┘
分類:WSH・VBS
WSH/正規表現
2017年06月17日
WSH(VBScript)で正規表現を行うには「VBScript.RegExp」オブジェクトを利用する。
┌──────────────────────────────────────┐
│Dim REG                                                                     │
│Set REG = WScript.CreateObject("VBScript.RegExp")                           │
│REG.Pattern = "^.*\((\d+)\).*$"                                             │
│If REG.Test(入力) Then                                                      │
│    出力 = REG.Replace(入力, "$1")                                          │
│End If                                                                      │
└──────────────────────────────────────┘
分類:WSH・VBS
WSH/実行パスにスペースが混じった場合
2014年12月05日
┌──────────────────────────────────────┐
│Dim objShell                                                                │
│Set objShell = WScript.CreateObject("WScript.Shell")                        │
│objShell.Run "~.exe"                                                       │
└──────────────────────────────────────┘
「WScript.Shell」の「Run」メソッドで実行ファイルのパスにスペースが
混じっていた場合、エラーとなってしまう。

画一的な解決策。
「""""」で囲う(実質「"」で囲ってことになる)。
┌──────────────────────────────────────┐
│objShell.Run """" & "~.exe" & """"                                         │
└──────────────────────────────────────┘
これなら、変数を介した時とかも画一的に対応できる。
分類:WSH・VBS
WSH/ZIP解凍(2)
2014年05月27日
入力元ZIPファイルを解凍とともに空にするWSH。
┌──────────────────────────────────────┐
│Set objShell = CreateObject("Shell.Application")                            │
│Set inputZip = objShell.NameSpace(入力元ZIPファイル).items                  │
│Set outputFolder = objShell.NameSpace(出力先フォルダ)                       │
│outputFolder.MoveHere inputZip                                              │
└──────────────────────────────────────┘
「outputFolder.CopyHere」を「outputFolder.MoveHere」に変更すればよい。
分類:WSH・VBS
WSH/ZIP解凍(1)
2014年05月26日
入力元ZIPファイルの内容を出力先フォルダに解凍する最も単純なWSH。
┌──────────────────────────────────────┐
│Set objShell = CreateObject("Shell.Application")                            │
│Set inputZip = objShell.NameSpace(入力元ZIPファイル).items                  │
│Set outputFolder = objShell.NameSpace(出力先フォルダ)                       │
│outputFolder.CopyHere inputZip                                              │
└──────────────────────────────────────┘
分類:WSH・VBS
前へ 1 2 次へ