アラサー、がんばる。

アラサー、日々の生活をがんばる。

スポンサーリンク

【VBScript】T-SQLコメント削除

個人的に過去のコードをコメントアウトして残してるやつが大っ嫌いです。
なので、サクッとコメントを一気に削除するときに使ったVBスクリプトです。

サクラエディタでできないかなぁ?と考えてたのですが、
サクラエディタだとブロックコメントの削除ができなかったのでVBScriptで行いました。





ファイル名:t-sqlコメント削除.vbs

Dim fs 'FileSystemObject
Dim f,nf
Dim reg
Dim l
Dim fname,nfname

fname = "~~~~.sql" 'コメント削除したいSQLファイル名(スクリプトファイルと同じ場所にあることを前提)
nfname = "コメント削除後_" & fname 'コメント削除後の結果を新しいファイルに保存する。

fname = ".¥" & fname
nfname = ".¥" & nfname

On Error Resume Next

Set fs = CreateObject("Scripting.FilesystemObject")

If fs.FileExists(fname) Then

Set f = fs.OpenTextFile(fname,1,False,-2)

If Err.Number > 0 Then
WScript.Echo "Open Error"
WScript.Echo Err.Description
Else
Set reg = New RegExp
reg.IgnoreCace = True
reg.Multiline = True
reg.Global = True

l = f.ReadAll


'ブロックコメント削除
reg.pattern = "/¥*[¥s¥S]*?¥*/"
l = reg.Replace(l,"")

'行コメント削除
reg.pattern = "--.*"
l = reg.Replace(l,"")

'行コメント削除後に残る末尾のタブ・空白を削除
reg.pattern = "[ ]+$"
l = reg.Replace(l,"")
reg.pattern = "[¥t]+$"
l = reg.Replace(l,"")

'キャリッジリターンを削除(ブロックコメントを削除すると改行コードだけ残ってしまう。)
reg.pattern = "¥r"
l = reg.Replace(l,"")

'空行を削除
reg.pattern = "^¥n|^¥s¥n"
l = reg.Replace(l,"")

Set reg = Nothing

'スクリプトファイルと同じ場所にファイル作成
If fs.FileExisits(nfname) = False Then
fs.CreateTextFile nfname
End If

Set nf = fs.OpenTextFile(nfname,2)
nf.WriteLine(l)

nf.Close
f.Close

End If
End If

Set f = Nothing
Set nf = Nothing

On Error Goto 0


正規表現を使ってただ単に文字列置換をするだけ。
正規表現の部分はそのときその時で見直したほうが良いです。

汎用性を上げるためには、ファイル名は直打ちではなくてInPutBoxにしたほうがいい。

今使ってるノートパソコンがイマイチ使いにくいため、そこまでかけませんでした。
気が向いたときに直します。

また正規表現使ってるだけなので、tsql限定でなく、色んなソースコードのコメント削除に流用できるかと。

スポンサーリンク

TOP

プライバシーポリシー