■ このスレッドは過去ログ倉庫に格納されています
VBSで便利なプログラムを作れスレ
- 1 :デフォルトの名無しさん:2007/02/03(土) 17:49:47
- 素人丸出しお粗末で遅くてもいいので
いますぐ使えるちょっぴり便利プログラムを作れ
(例○○を自動処理してくれるプログラム)
- 409 :デフォルトの名無しさん:2011/06/06(月) 00:45:23.45
- サンプルをいじることしか出来ない私には手に負えないですね…
諦めで別な方法を模索してみます
- 410 :デフォルトの名無しさん:2011/06/14(火) 02:40:29.91
- 2chのhtmlを取得して、vbsで正規表現による抽出と置換をしてhtmlを整形してログを管理するプログラムに読ませたい。
抽出までは上手くいきました。
しかし、正規表現による置換ができません
例えばこのスレのhtml内のコメ409を抜粋するとこうです
<dt>409 :<a href="mailto:sage">
<b>デフォルトの名無しさん</b></a>:2011/06/06(月) 00:45:23.45 <dd> サンプルをいじることしか出来ない私には手に負えないですね… <br> 諦めで別な方法を模索してみます <br><br>
ここから
409 :2011/06/06(月) 00:45:23.45 <dd> サンプルをいじることしか出来ない私には手に負えないですね…
<br> 諦めで別な方法を模索してみます<br><br>
にするには\<a.+/a>|(</a>:)|\</?.+?\> で置換して余計なものを取り除けばできました。
しかし、<dd>や<br>などの改行にあたる部分も別途置換しないといけないのでここで詰まってます。
片方づつなら出来るのですが同時に1スクリプト内
でやろうとするにはどうすればいいのでしょうか?
- 411 :デフォルトの名無しさん:2011/06/14(火) 02:45:14.28
- \<a.+/a>|(</a>:)|\</?.+?\> の部分を空白に置換するvbsです
Dim objFile ' 対象ファイル
Dim oldText ' 置換前テキスト
Dim newText ' 置換後テキスト
Dim objFSO ' ファイルシステムオブジェクト
Dim objRep ' 正規表現オブジェクト
Dim repText ' 置換対象文字列
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("読む込むテキストファイル")
' テキストデータ読込
oldText = objFile.ReadAll
' 置換対象文字列
repText = ""
Set objRep = New RegExp
objRep.Multiline = True
' 正規表現パターンを指定する
objRep.Pattern = "\<a.+/a>|(</a>:)|\</?.+?\>"
objRep.IgnoreCase = True
objRep.Global = True
' テキスト変換
newText = objRep.replace(oldText, repText)
objFile.Close
' 書き込み
Set objFile = objFSO.CreateTextFile("書き出すテキストファイル")
objFile.WriteLine (newText)
objFile.Close
- 412 :デフォルトの名無しさん:2011/06/14(火) 02:45:45.67
- ' 書き込みの前から' 正規表現パターンを指定するへループして繰り返せればなと考えているのですが上手く思いつきません。
もし、わかるかたがいらっしゃれば教えてください。よろしくお願いします。
- 413 :デフォルトの名無しさん:2011/06/14(火) 04:43:26.73
- やりたい事がいまいちわからないが、
複数回やりたいんであれば、
正規表現パターンを配列に入れて、ループするだけじゃないかな〜
- 414 :デフォルトの名無しさん:2011/06/14(火) 07:48:13.52
- >>411
objRep.Pattern = "<(""[^""]*""|\'[^\']*\'|[^\'"">])*>"
こういうことじゃなくて?
- 415 :デフォルトの名無しさん:2011/06/14(火) 19:38:12.72
- なんでdat使わないで、
わざわざhtmlなんて難しいものを使う?
- 416 :デフォルトの名無しさん:2011/06/15(水) 11:59:02.32
- ちょっと見てみた、確かにhtmlよりdatのほうが容量4割減でおいしいんだけどタイトル取得できないのとコメ番号ないから置換するときどうやって割り当てようか思いつかない
- 417 :デフォルトの名無しさん:2011/06/15(水) 12:03:32.40
- よくみたら1行目の最後にタイトルあったわ
- 418 :デフォルトの名無しさん:2011/06/15(水) 19:08:23.10
- デスクトップから2ch検索するvbs作ってるんだけど、
変数の件でわからないところがある。
Dim 変数 で宣言する
このとき変数が、例えば2churlとかだと識別子がありません。とエラーがでる
churlなら問題ない、どうして先頭に数字がくるといけないんですか?
識別子がありません。
- 419 :デフォルトの名無しさん:2011/06/15(水) 19:30:46.07
- 先頭に数字が来ることを許すと
Dim 2
とか
Dim 123
という変数が出来てしまう
これってどうやって変数の2や123と、数値の2や123を識別するの?
ってことになるので、必ず英字を入れなければならないというルールが必要になるわけで
1文字の変数がある以上、その英字が入る位置は1文字目、つまり先頭になり
1文字目が英字でなければいけない=先頭が数字ではいけない
ってことになるわけだ
1文字目が英字でさえあれば、1文字変数でも、2文字目以降が数字でも
確実に変数と数値を識別できる
- 420 :デフォルトの名無しさん:2011/06/17(金) 20:55:49.75
- vbsでpingを打って、通るまで処理を繰り返すスクリプトを
作成しているのだが、どうもうまくいきません。
IF文で分岐をさせるのはうまくいくのですが、以下のスクリプトで
192.168.0.3に対して通るようになった時点でスクリプトを終了
させたいんですが、どこが悪いんでしょうか?
dim strIP
dim timeOut
'タイムアウト設定(ミリ秒)
timeOut = "10"
strIP = "192.168.0.3"
Set objWMIService = GetObject("winmgmts:\\.")
Set colItems = objWMIService.ExecQuery _
("Select * from Win32_PingStatus " & _
"Where Timeout = " & timeOut & " AND Address = '" & strIP & "'")
For Each objItem in colItems
do while objItem.StatusCode <> 0
Wscript.echo "NG"
Set objWMIService = GetObject("winmgmts:\\.")
Set colItems = objWMIService.ExecQuery _
("Select * from Win32_PingStatus " & _
"Where Timeout = " & timeOut & " AND Address = '" & strIP & "'")
loop
Next
- 421 :デフォルトの名無しさん:2011/06/19(日) 01:45:19.27
- 選択プルダウンボックスとか作れたら便利になるのになぁ
- 422 :デフォルトの名無しさん:2011/06/19(日) 02:28:19.04
- VBSで選択プルダウンボックス使ってるけど、何か?
VBSというかWSHは、COM、OCXで拡張してナンボなんだから
欲しいけど言語に備わってない機能は、外部で補えば良いだけだ
- 423 :デフォルトの名無しさん:2011/06/19(日) 07:13:15.16
- 自分専用ならそうだろうけど、
comはインストールの壁が越えられない
- 424 :デフォルトの名無しさん:2011/06/19(日) 07:17:25.40
- 超えられるけど、何か?
USBメモリで持ち歩いて使ってる
COMのレジストリ登録を自動化してるとかではなく未登録で
- 425 :デフォルトの名無しさん:2011/06/19(日) 07:43:48.47
- 自信満々で「超えられるけど、何か?(キリッ」だもんなあw
- 426 :デフォルトの名無しさん:2011/06/19(日) 08:09:56.20
- 自信満々に言った「comはインストールの壁が越えられない(キリッ」
を否定されて悔しかったの?
- 427 :デフォルトの名無しさん:2011/06/19(日) 08:19:38.57
- GetObject
- 428 :デフォルトの名無しさん:2011/06/19(日) 08:29:07.02
- USB股間に忍ばせて持ち歩く男の人って・・・///
きみの端子にプラグ★イン!
- 429 :≠423:2011/06/19(日) 10:02:11.33
- >>426
あのね、ある程度の会社ならね、勝手にツール類をインストールする事ができないのね。
USBメモリも、使用禁止、あるいは相当制限されているのが一般的なのよ。
- 430 :デフォルトの名無しさん:2011/06/19(日) 12:12:42.62
- なんか勘違いしてる子が出てきたなw
あのね、comにインストールの壁なんて無いって話であって
USBメモリなんて、全く関係ない話なのよ
それと、『ある程度』レベルの会社だと、勝手にツール類をインストールする事ができないところが多いけど
『ある程度』を超えたまともな会社だと、勝手にツール類をインストールする事が出来るところも多い
セキュリティーが確立している上に、VBAやWSHなどの元から入ってる言語でいろいろ作れる奴が多いから
外部からのツールのインストールを制限しても、元から入ってる言語でツールが作れちゃうから意味無いw
逆にまともな会社だでツールのインストールを制限している場合は、WSHもVBAも制限してる
- 431 :デフォルトの名無しさん:2011/06/19(日) 18:14:48.56
- ≠423とか必死に否定すると、余計に・・・・・( ̄ー ̄)ニヤリッ
- 432 :デフォルトの名無しさん:2011/06/19(日) 21:27:41.80
- 「勝手に出来る」って方がおかしいだろ
今の時代どこもピリピリしてるってのに。
単におまえさん自身か会社がその客に信用されてるってだけじゃねーの?
でも普通は申請式だと思うけど。他人の会社で勝手にてのはどうかと思う。
- 433 :デフォルトの名無しさん:2011/06/20(月) 00:02:07.13
- 勝手にしてよいと許されていることを勝手にやる上で、何の咎があると?
なにか勘違いしてやいないか?
- 434 :デフォルトの名無しさん:2011/06/20(月) 00:33:54.55
- これは突っ込んであげたほうが良いのだろうか?
- 435 :デフォルトの名無しさん:2011/06/20(月) 00:59:30.37
- 生温かい目で見守ってあげるのが良いんじゃないかと
- 436 :デフォルトの名無しさん:2011/06/20(月) 10:20:41.11
- batファイルは止められませんね
じゃぁバッチ最強じゃん
- 437 :デフォルトの名無しさん:2011/06/20(月) 17:46:53.34
- <a href="http://upload.jpn.ph/500/bin/やきそば.zip">こちら</a>
という内容のテキストファイルからURLの部分を抽出して
変数に入れるっていう目的でvbs作ったんですが上手く変数に入りません
Dim objFile ' 対象ファイル
Dim oldText ' 置換前テキスト
Dim newText ' 置換後テキスト
Dim objFSO ' ファイルシステムオブジェクト
Dim objRep ' 正規表現オブジェクト
Dim repText ' 置換対象文字列
var1 = "解析.txt" '保存する名前
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(var1, 1, false, 0)
' テキストデータ読込
oldText = objFile.ReadAll
patrn="(http:\/\/[^\x22 ]+)" '検索する文字列を入力して下さい。
repText = "$2"
Set objRep = New RegExp
objRep.Multiline = True
' 正規表現パターンを指定する
objRep.Pattern = patrn
oldText = objRep.replace(oldText, repText)
WScript.Echo $2
objFile.Close
どうすればいいのでしょうか、もしわかるかた入れば教えてください。
自分では後方参照とかExecuteやマッチとかが関係ありそうで
調べて試したんですが思うようにいきませんでした。
- 438 :デフォルトの名無しさん:2011/06/21(火) 21:55:45.73
- まずは基本を学べってレベル
- 439 :デフォルトの名無しさん:2011/06/23(木) 15:44:28.14
- 正規表現の構文がデタラメ。
パターンがデタラメだし後方参照の仕方もデタラメ。
ヘルプもろくに見てないだろ。
- 440 :デフォルトの名無しさん:2011/06/23(木) 22:13:57.11
- 置換という言葉の意味もわからぬまま、これをコピペして値を
置き換えたんだろう。
http://d.hatena.ne.jp/necoyama3/20081202/1228220710
- 441 :デフォルトの名無しさん:2011/06/23(木) 22:32:18.65
- 凄い違和感あったんだけど納得
- 442 :デフォルトの名無しさん:2011/06/23(木) 23:57:00.51
- >>433
やっぱ許可貰ってんじゃん
ま、当たり前だよなびっくりした
- 443 :デフォルトの名無しさん:2011/06/24(金) 07:22:39.31
- 久しぶりに酷い自演をみた
- 444 :デフォルトの名無しさん:2011/06/24(金) 10:19:04.37
- >repText = "$2"
この意味不明っぷりがすごいね
- 445 :デフォルトの名無しさん:2011/06/24(金) 14:11:47.65
- 突っ込む所はそこじゃないと思うがw
Echoのとことか、パターン自体に突っ込めよ
- 446 :デフォルトの名無しさん:2011/06/24(金) 14:15:34.45
- >>440
> objRep.Pattern = "T..t"
感動的なパターンだなw
- 447 :デフォルトの名無しさん:2011/06/24(金) 19:23:21.29
- >>437
ドリルの刑
ttp://www.amazon.co.jp/dp/4774145092
姉妹編と違って表紙にドリルが載っていないのがイマイチだけど
- 448 :デフォルトの名無しさん:2011/06/25(土) 00:10:36.15
- >>437も恥ずかしくて出れこれないんだから、いい加減に許してやれよ
- 449 :デフォルトの名無しさん:2011/06/25(土) 13:11:24.67
- >>443
そんなに悔しかったの?
- 450 :天使 ◆KOAgYBL/Xg :2011/06/29(水) 17:41:46.87
- さすが VBSなんていう時代遅れツール使ってるスレはレベルが低い
- 451 :天使 ◆uL5esZLBSE :2011/07/02(土) 08:25:05.28
-
ゴミみたいな奴だな
- 452 :デフォルトの名無しさん:2011/08/28(日) 14:30:43.29
- 文字を文字コードの数値に変換して出力したいんだけど誰か助けて
- 453 :デフォルトの名無しさん:2011/08/28(日) 20:10:45.21
- asc("a")
- 454 :デフォルトの名無しさん:2011/09/01(木) 09:14:32.07
- 何その顔文字、ふざけてるの
- 455 :デフォルトの名無しさん:2011/09/01(木) 10:09:24.83
- ("з")
- 456 :デフォルトの名無しさん:2011/11/20(日) 14:29:12.95
- (・∀・)
- 457 :デフォルトの名無しさん:2011/11/20(日) 15:33:06.16
- VBScriptって、1ヶ月もあれば極められるよね
あとはCOMを何処まで使いこなせるかだけ
- 458 :デフォルトの名無しさん:2011/11/21(月) 17:49:41.03
- そんな時期もありました
125 KB
■ このスレッドは過去ログ倉庫に格納されています
★スマホ版★
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 05.05 2022/08/31 Walang Kapalit ★
FOX ★