1 名前:デフォルトの名無しさん [2008/04/23(水) 20:00:50 ] ( ´ゝ`) 誰か詳しい情報キボンヌ ●過去スレ WSH(・∀・)スレッド! pc11.2ch.net/test/read.cgi/tech/1055075469/ WSH(・∀・)スレッド! Part 2 pc11.2ch.net/test/read.cgi/tech/1176698934/ ●関連スレ お前ら、wsh使ってますか? Part7 pc11.2ch.net/test/read.cgi/win/1190548945/ HTAをもっと流行らせる計画 pc11.2ch.net/test/read.cgi/tech/1124559962/ ★WSHでCGI★JScriptVBScript pc11.2ch.net/test/read.cgi/php/1059745064/ ●公式サイト Windows Script www.microsoft.com/japan/msdn/scripting/ ●個人サイト Windows Scripting Host homepage3.nifty.com/aya_js/wsh/index.htm Windows Scripting Host Laboratory www.roy.hi-ho.ne.jp/mutaguchi/wsh/ Windows Script Wiki winscript.s41.xrea.com/wiki/index.php
83 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 06:53:26 ] wshでSQLServer2000と2005のテーブルの内容を取得するのはどうやるんですか? なるべく高速な方法が良いです。 更新はしないのでSELECTが出来ればいいです。
84 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 08:19:08 ] >>83 ADOを使う ADODB.Connection とかのキーワードでぐぐってみれ
85 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 23:10:26 ] vbsで、 TEST_PATHに"C:\TEST\*.txt"を入れて以下のように 動かしたら"C:\TEST\*.txtt"ファイルのようなものまで 消えてしまいました。 ワイルドカードを使用して、拡張子txtのみを削除する 方法は無いのでしょうか? objFSO.DeleteFile TEST_PATH
86 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 23:29:46 ] >>84 Thanks!
87 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 00:27:05 ] >>85 たぶんないと思う。 自分でファイルのリストを取得してから通常の文字列マッチング で絞り込むくらいしか思い浮かばない。
88 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 01:00:09 ] >>85 ひどい仕様だな
89 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 03:25:01 ] NTFSならレジストリで8.3ファイル名の記録をオフにすれば そういう挙動が起きなくなるとどこかで見た気がする。
90 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 05:03:36 ] Dim arr() msgbox Ubound(arr) 'error ReDim arr(9) Redimをする前に、arrに値が入っているか どうかを調べる方法はないでしょうか? Redimをする前に、Ubound()で調べようとすると エラー「インデックスが有効範囲にありません」 となります。
91 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 13:39:45 ] if err.description="インデックスが有効範囲にありません" then
92 名前:90 mailto:sage [2008/06/12(木) 18:41:03 ] >>91 を参考にして下記でできました。ありがとうございます。 on error Resume Next WScript.Arguments.Item(0) if Err.Number <> 0 then msgbox "引数無し" Err.clear on error goto 0
93 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:36:39 ] if WScript.Arguments.Count = 0 then msgbox "引数無し"
94 名前:90 mailto:sage [2008/06/13(金) 01:51:11 ] >>93 私なりにやったのですが、そのようなコードを書けなかった です。ありがとうございます。
95 名前:デフォルトの名無しさん [2008/06/17(火) 22:24:32 ] VBScriptを使って、HTTPステータスコードを取得する方法を探しています。 ある任意のWeb画面に対してスクリプトでリクエストを行い、HTTPステータスコード(200 ok 等)を 取得する方法はありますでしょうか。 どなたかご存知の方がいらっしゃいましたら、ご教授下さい。
96 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 22:46:00 ] >>95 まかせろ! 検索してやった! ttp://oshiete1.watch.impress.co.jp/qa4108450.html
97 名前:>>95 [2008/06/17(火) 22:52:20 ] >>96 検索ありがとうございます。 確認してみたんですが、この先に紹介してあるサイトはVB?でしょうか。 どうもVBScriptに応用する方法が分かりません。
98 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:09:41 ] >>97 ・・・まーいーや。 Microsoft.XMLHTTP とかの status プロパティ使えばできるでしょ。
99 名前:>>95 [2008/06/18(水) 06:54:28 ] >>98 有難う御座いました。 勉強不足の為、すぐに理解できませんでしたが きちんと出来ました。 助かりました。m(_ _)m
100 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 18:15:00 ] 処理1 msgbox "AAAA" 処理2 上記を実行し、ウィンドウンがでてきて、 OKボタンを押すと、処理2に移ります。 OKボタンを押さずとも、処理2に移る方法が ありませんか? Wait:=Falseみたいな事できま せんか?
101 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 18:45:56 ] .run "msgbox.vbs"
102 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 22:03:00 ] WSHはマルチスレッドじゃないからね 1プロセス1スレッドで、書かれたことを"順次"実行していくだけで Megboxを出した状態で他の処理もするなどの"同時"実行は出来ない やりたければ>>101 も書いてるように別プロセスに非同期でMegboxを出させるしか無い
103 名前:100 mailto:sage [2008/06/27(金) 12:25:19 ] >>101 それにします。ありがとうございます。 >>102 マルチスレッドの事はわかりませんが、 「同時にできない」という事だけは覚えておきます。
104 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 12:37:02 ] WSH5.8からは出来るようになるかも
105 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 15:11:17 ] WSHってまだバージョンアップするの?
106 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 17:13:30 ] WSHは滅びんよ、何度でも甦るさ
107 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 21:01:14 ] PowerShell
108 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 02:10:47 ] PSH
109 名前:デフォルトの名無しさん [2008/07/07(月) 23:08:32 ] VBSで質問です。 hoge.txtが以下の形式であります。 --- hoge.txt -------- foo 001 bar 001 (文字列、ブランク、3桁の数字、改行) みたいな感じ。 このテキストに記載された文字列と一致する文字列が引数だったら、 同じ文字列の行の数字を+1させたいんです。 たとえば、引数が「foo」だった場合、「foo 002」みたいにしたいんです。 こんな感じの特定行を抜き出してのファイルに記載された文字列の置き換えって出来るんでしょうか? というか、どんな風に組めばいいか教えてください(泣)
110 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 00:55:20 ] >>109 やりたいのって、マッチした文字列をカウントするようなこと? ファイルの入出力がOKなら、 一行読んでは、Splitして、文字列と整数の構造体に 放り込む、を繰り返して一度全部構造体に入れる。 CLng CIntでもつかって後ろの要素は整数型変換すりゃいい。 使う構造体はハッシュ(Dictionary)でいいんじゃないかな。 マッチしたら、要素をインクリメント処理するを繰り返し、 終わったらJoinでもつかってファイルに書き出せば?
111 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 03:38:20 ] 毎回ファイル全体書き換えていいなら>>110 必要な場所だけ書き換えたいなら 最大999までっていう制限で良い場合は R/Wでオープンしてseekして書き換え 必要な場所だけ書き換える方針で 最大いくつになるか分からない場合は 999超えたときに末尾に追加行を作って 999-追加なしなら999 999-000なら1000 999-001なら1001 という処理を入れれば良い
112 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 13:05:43 ] COBOLer ですね わかります
113 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 17:00:48 ] 吉岡照雄って人のOnErrorResumeNext.VBSの解説テキスト読んでるんだけど(2)の後半がよくわからない On Error GoTo 0で復帰しちゃったら何事もなく処理が再開されちゃうから ンなもん実装すんなよ!、おまいらも使うなよ! って言ってるのかしら
114 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 20:40:17 ] >>92-93
115 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 05:33:05 ] exceptionが無かった頃はそうするしかなかった いまならtry-catchで済む話
116 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 13:04:13 ] いまでもtry-catchつかえないよ
117 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 15:50:29 ] .NETなら使える
118 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 17:37:06 ] >>117 で?ややこしくならないようにまとめてくれ。
119 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 21:20:46 ] まとめるとJScriptを使えばよい
120 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 21:27:22 ] 超シンプルなデータベースを作りたいと思っています フォルダ内に100のテキストがあったとして その中に a="赤" とか a="白"と書いてあり それを読み取り 最終的に割合を出すようにしたいのですが いいサンプルなどないでしょうか?
121 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 22:05:46 ] var fso = new ActiveXObject("Scripting.FileSystemObject"); var Shukei = {}; var Sum = 0; // カレントフォルダの全ての *.txt ファイルの1行目を読み,Shukeiに集計する var f = fso.GetFolder("."); for (var fc = new Enumerator(f.Files); !fc.atEnd(); fc.moveNext()) { var file = fc.item(); if (/\.txt$/.test(file.Name)) { var stream = file.OpenAsTextStream(); var s = stream.ReadLine(); stream.Close(); eval(s); if (a in Shukei) Shukei[a]++; else Shukei[a] = 1; Sum++; } } // 結果表示 for (var i in Shukei) WScript.Echo(i + ": " + (100 * Shukei[i] / Sum) + "%");
122 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 22:16:21 ] サンプルまで作ってもらってありがとうございます 行:1、文字:28、コード:800A0401、ソース:Micosoft VBScriptコンパイルエラー これがでて試せないんですが何が問題なんでしょうか?
123 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 22:25:59 ] >>122 拡張子は .js です
124 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 22:30:24 ] ありがとうございます vbsだけじゃなくて jsもつかえるんですね
125 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 22:32:25 ] JScriptだから
126 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 23:56:31 ] >>113 On Error Goto ErrLabel エラー ErrLabel: msgbox "キャッチ" これをやってみたけど、ダメだった。VBAならできた。
127 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 15:32:51 ] helpよめ
128 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 13:00:54 ] パスワード入力の時どうしてる?
129 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 17:15:30 ] バッチとか、シェルとかPHPしか経験無いんですが、 Wshってマスターするのに、どのくらいの時間が掛かりますか?
130 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 17:29:40 ] マスターってなんだよ と、突っ込まざるを得ない
131 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 17:43:18 ] プログラミング言語をマスターしようといっている時点で終わってる。
132 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 17:47:23 ] ライブラリの仕様とか、用意されてるものとか、その開発環境で実現できることが さっと頭に浮かぶほうが、「マスターした」に近いよね。
133 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 17:49:39 ] しかも聞いてるのが時間って・・・
134 名前:129 mailto:sage [2008/07/13(日) 19:33:27 ] >>132 そういうことですね。 ある程度バッチで出来ちゃうから なかなかwshやろうと思わないんだよね
135 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 19:59:02 ] まぁ、WSHはCOM使うのが得意で、VBかJSで書きますってだけで、 そのCOMと同じ機能を持ったCLIプログラムが最初から用意されて、 それに精通しているなら、それらを組み合わせてバッチでやろうと思うよね。 でもWSHのほうが、多少細かいハンドルできるから、覚えたいという気持ちはわかる。 ちょっとしたファイルの入出力とか、シェル周り、FileSystemObject周りは便利。
136 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:36:51 ] シェル周り便利なの?
137 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:48:06 ] >>136 FSOで一通りのファイル操作はできるし、それ以外はShell.Runとかでいいからという発想での話。
138 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:51:41 ] コマンドプロンプトが一瞬表示されてしまうと嫌がられる
139 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:57:08 ] >>138 runの第二引数に0じゃだめだっけ?
140 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 09:18:44 ] >>135 VB≠VBS
141 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 09:33:15 ] >>140 どゆこと?
142 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 21:05:26 ] >>141 VBSはVBライクで、VBとは違うって言いたいだけなのかな?
143 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 22:35:20 ] WSH スレに VB はいらんでしょ ってことじゃないかな。 まあ、>>135 の勘違いか typo なんだろうけど、ちいせい奴としか思えない >>140
144 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 22:54:40 ] >>128 htmlでフォームを作って、パスワード入力欄に入力してもらう。 Enterを押したら、submitボタンが反応して、ページを読み込もうとするから、それを検出して・・・ って、もっといい方法があると思う >>138 表示されないようにコマンドから返ってくる文字列を取得する 妙に複雑なコードを見たことがあるな
145 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 23:24:12 ] >>138 タスク WScript.exe //E:JScript hoge.CMD hoge.CMD @if(0==0)WScript.Quit(new ActiveXObject('WScript.Shell').Run('"'+WScript.ScriptFullName+'"',0,true));@else REM バッチファイルだよーん :@end
146 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 23:31:47 ] >>128 Hey, Scripting Guy! www.microsoft.com/japan/technet/scriptcenter/resources/qanda/feb05/hey0204.mspx
147 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 17:30:06 ] VBScriptを書く時、みなさんは、どんなエディターを 使っていますか?
148 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 21:20:28 ] Excel
149 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 21:45:51 ] 男は黙ってメモ帳。
150 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 21:53:42 ] 男じゃない場合↓
151 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 22:04:04 ] Microsoft Visual Web Developer 2008 Express Edition
152 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 22:11:39 ] サクラ
153 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 01:35:27 ] コントロールパネルの「コンポーネントの追加と削除」一覧と インストールの状態の有無を出力したいと考えているのですが WSHやWMIで可能でしょうか?
154 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 13:07:01 ] まぁ、レジストリ管理されてるものっぽいし、 レジストリ操作か、WMIでかのうじゃないの?
155 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 17:06:08 ] でもまあ、具体的なやり方は自分で調べろってことで
156 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 17:57:35 ] www.microsoft.com/japan/technet/scriptcenter/scripts/apps/user/usapvb07.mspx
157 名前:マイク ◆yrBrqfF1Ew mailto:sage [2008/07/19(土) 07:10:06 ] >>147 ずっとterapadを使ってる。 テキストファイルはほとんどterapadとxyzzyとnotepadで開いてる。
158 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 01:06:42 ] フォーカスされたチェックボックスをオンに する方法がありますか? お願いします。 obj.SendKeys " " 上記でスペースを押せば、オンオフが切り替わります。 しかし、切り替えたいのでなくて、オンにしたいのです。
159 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 02:57:56 ] どんな状況で、何をやっているのか想像つかね。
160 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 14:27:59 ] obj.SendKeys "On"
161 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 17:58:33 ] >>160 つまらん。
162 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 01:56:06 ] シリアルポートに文字出力して、その応答を受け取るにはどうすれば 出力だけならCreateTextFile → WriteLineでできたっぽいですが、ReadLineすると怒られます
163 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 23:30:55 ] >>162 できたって、え?
164 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 05:08:00 ] 指定位置、指定サイズ、指定表示状態(アイコン、詳細表示など)でフォルダウィンドウ(エクスプローラー)を起動できちゃったりしますか?
165 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 08:44:21 ] 出来ちゃいますよ アレ使えば
166 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 15:17:40 ] Shell.Explorer System.Object など、使い道が無さそうなProgIDがレジストリにいっぱいあるのはなぜ?
167 名前:デフォルトの名無しさん [2008/07/24(木) 18:35:25 BE:555198645-2BP(802)] >>165 ヤダァ♪ もう、えっちぃ♥
168 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 23:48:00 ] COmってリファレンスないもの、多いよな
169 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 00:08:03 ] アレってなあに?
170 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 00:12:34 ] >>166 System.Objectは.NET Frameworkのもの。 確かにWSH (COM)ではこれだけあっても役立つとは思えないけど。
171 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 16:23:19 ] set x=createobject("explorer.application") x.top=100 x.left=100 x.visible=true だろ
172 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:07:11 ] 実行したら ActiveXコンポーネントはオブジェクトを作成できません:'explorer.application' って出た
173 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:24:26 ] C08AFD90-F2A1-11D1-8455-00A0C91F3880 にprogidを登録しろ
174 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:27:13 ] internetをつけてみろ
175 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:32:51 ] それだとIEになるぞなもし
176 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 15:29:30 ] レジストリに C08AFD90-F2A1-11D1-8455-00A0C91F3880 がないのに、使えるのはなぜ?
177 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 17:16:08 ] なぜWSHでwindowsを終了させられないのですか?
178 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 21:00:13 ] WSHスクリプトを起動するより、電源ボタンを押すほうが簡単だからかも?
179 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 21:05:03 ] >>177 出来るけど、なにか?
180 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 23:21:04 ] WMI使ってできるよねぇ。
181 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 23:50:19 ] WScript.Echo("電源ボタンを押してください");
182 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 19:35:52 ] createobject("shell.application").shutdown
183 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 10:37:00 ] フォームの自動入力させているんだけど、 IEじゃなくて、IEコンポーネントつかったブラウザとかソフトに入力する方法って無いですかね。