SyntaxHighlighter

2014年7月26日土曜日

[VBS] コマンドジェネレーター

同じコマンドを、パラメータを変えながら大量に打つ必要がある場合。
単純なものならテキストエディタでちょいちょいするだけで事足りるんですが複雑になるととたんに面倒になるのでコマンドジェネレーター作りました。vbsです。

'command generator

Option Explicit

Dim commandStrings
Dim inputCsv
Dim outputFile

'生成するコマンドのフォーマット。$$数値$$が置換対象になります。0スタート
commandStrings = "echo -hoge $$0$$ -foo $$1$$ -bar $$0$$.txt"

'入力値になるタブ区切りのテキストファイル
inputCsv = "c:\users\hoge\desktop\bat\input.csv"

'コマンドが出力されるファイル
outputFile = "c:\users\hoge\desktop\bat\output.txt"

'====================================================================

Dim objRegex
Set objRegex = CreateObject("VBScript.RegExp")
objRegex.Pattern = "^\s*$"

Dim objFileSys
Set objFileSys = CreateObject("Scripting.FileSystemObject")

Dim objReadStream
Dim objWriteStream
Set objReadStream = objFileSys.OpenTextFile(inputCsv, 1)
Set objWriteStream = objFileSys.OpenTextFile(outputFile, 2, True)

Dim strLine
Dim i
Dim aryItems
Dim replacedStr
Do Until objReadStream.AtEndOfStream = True
    strLine = objReadStream.ReadLine
    If objRegex.Test(strLine) = False Then
        replacedStr = commandStrings
        aryItems = Split(strLine, " ")
        For i = 0 to UBound(aryItems)
            replacedStr = Replace(replacedStr, "$$" & i & "$$", aryItems(i))
        Next
        objWriteStream.WriteLine replacedStr
    End If
Loop

objReadStream.Close
objWriteStream.Close

40行目のダブルクォーテーションの中はスペースではなくタブです。 コピペで上手くいかない場合はタブを手打ちしてください。 もしくは、そこが区切り文字を意味している部分なので、パラメータ値に含まれさえしなければ任意の文字に変えて大丈夫です。 (当然入力ファイルの区切りもそれにあわせてください)
適当な名前で拡張子.vbsで保存してダブルクリックすればOKです。
例えば上記の例のまま実行すると、入力値のファイルの中身が
aaa[タブ]bbb
ccc[タブ]ddd
だった場合、出力ファイルには
echo -hoge aaa -foo bbb -bar aaa.txt
echo -hoge ccc -foo ddd -bar ccc.txt
と出力されるわけです。
あとはこれをコピってコンソールに貼り付けるなりバッチにするなりで実行するわけですね。

2014年7月7日月曜日

みおふぉん使用感

みおふぉんにして2ヶ月たちましたが、全く問題ないです。
クーポンも常時onですが余りまくって繰り越しされ、今月は上限2GBスタート。(普通1GB)
ただし、私が使ってる端末はLTE未対応なので3Gでしか使ってませんし、動画はたまに見ますがゲームはしません。 かつ家では無線LAN使ってます。
通話はG-Callを自作アプリでフックして使ってます。こちらも今のところ全く問題なし。
結果、docomoだったときと体感的には全く変わらない品質で使えてます。文句無いです。