作成 2010.01.07
更新 2010.01.07
VBScript で grep もどき
使い方

フォーマット

cscript grep 検索したい文字列 ファイル名 [-v] [-i]

正規表現も使えますよ

cscript grep 検索したい文字列 ファイル名

文字列を除外

cscript grep 除外したい文字列 ファイル名 -v

大文字小文字無視

cscript grep 検索したい文字列 ファイル名 -i
コード

grep.vbs

Option Explicit
Const ForReading = 1
Dim FSO, myReg
Dim myRead, myLine
Dim strFileName, strPattern
Dim isIgnoreCase, isIgnorePattern
Dim counter
Set FSO = CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.length < 2 Then
  WScript.Echo "Usage: cscript grep.vbs regexp file [-v] [-i]"
  WScript.Quit
End If

isIgnoreCase = False
isIgnorePattern = False
strPattern = ""
strFileName = ""
For counter = 0 To WScript.Arguments.length - 1
  If WScript.Arguments(counter) = "-i" Then
    isIgnoreCase = True
  ElseIf WScript.Arguments(counter) = "-v" Then
    isIgnorePattern = True
  ElseIf Len(strPattern) = 0 Then
    strPattern = WScript.Arguments(counter)
  Else
    strFileName = WScript.Arguments(counter)
  End If
Next

Set myReg = new RegExp
myReg.Pattern = strPattern
myReg.Global = False
myReg.IgnoreCase = isIgnoreCase

If Not FSO.FileExists(strFileName) Then
  WScript.Echo "File not found. '" & strFileName & "'"
End If
Set myRead = FSO.OpenTextFile(strFileName, ForReading)
Do While myRead.AtEndOfStream = False
  myLine = myRead.ReadLine
  If myReg.Test(myLine) Then
    If Not isIgnorePattern Then WScript.Echo myLine
  Else
    If isIgnorePattern Then WScript.Echo myLine
  End If
Loop
myRead.Close
タグ: VBScript

©2004-2017 UPKEN IPv4