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
52 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:04:39 ] >>48 > Microsoftのページには定数は const みたいに書いてあるのですが、 > 構文エラーと言われます。 それJScript.NETの説明。 >>50 > WSH?(Windows Script)のvarはもともといらないのね。 varなしで変数を宣言すると、グローバル変数になっちゃうぞ。
53 名前:デフォルトの名無しさん [2008/05/24(土) 18:26:40 ] >>52 うへー、ぜんぜん違うのね。 ありがとう。 この辺のことはどこに書いてあるんだろう
54 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 21:24:09 ] >>1 の公式
55 名前:名無しさん@Linuxザウルス [2008/05/26(月) 13:31:35 ] makewin.exeでexe化しておいたvbsが savceの5/26定義パターンから木馬として片端から検疫されてた.. なんでmakewin&exe化したのが木馬扱いされてんねん あああダメージでかいわ..orz
56 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:22:49 ] CreateObject("WScript.Shell").SendKeys "moji" mojiと書きたいのですが。 その前にIMEを切りたいのですが、できますか?
57 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 01:50:36 ] はい
58 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 01:59:53 ] {kanji}
59 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 23:50:09 ] VBScriptの記述で質問です、引数(フォルダのドラッグを想定)で与えられたフォルダの中身を、 コマンドラインで順に処理したいのですが(実行処理を確認したいため)直ぐにターミナルが閉じてしまいます。 今回初めて、VBScriptを作成したのですが、どこがおかしいのか分からない状況です。 おかしい点を教えていただけないでしょうか。 #実行処理が確認できるのであれば、コマンドラインで処理する必要はないのですが、どの様な #方法があるのか調べることができませんでした。もし他によい方法があれば教えてください。 Set fso = CreateObject("Scripting.FileSystemObject") Set args = WScript.Arguments Set WSHShell=Wscript.CreateObject("Wscript.Shell") '引数チェック if args.Count <> 1 Then WScript.Echo "Usage: test.vbs (target folder path)" WScript.Quit() End If 'コマンドラインで実行 If LCase(fso.GetFileName(WScript.FullName)) = "wscript.exe" Then WshShell.Run "cscript """ & WScript.ScriptFullName & """" & args(0) & """",1,False WScript.Quit End If Set folder = fso.GetFolder(args(0)) 'フォルダを内のファイル一覧を取得 For Each file In folder.Files WScript.Echo file.Name Next
60 名前:59 mailto:age [2008/05/27(火) 23:59:39 ] 最終的な目標ですが、フォルダ内にあるファイル全てを順に、あるアプリケーションに 引数として渡して処理を自動化したいと考えてます。よろしくお願いします。
61 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 00:08:17 ] WshShell.Run "cmd /k cscript """ & WScript.ScriptFullName & """ " & args(0) & """",1,False
62 名前:60 mailto:sage [2008/05/28(水) 00:17:04 ] >61 レスありがとうございます。上手く動作することができました。 本当に助かりました!
63 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 15:29:48 ] >>48 typelibrary作って<reference>で参照すれば?
64 名前:デフォルトの名無しさん [2008/06/01(日) 20:28:57 ] WSHを使って、タスクトレイで動いてるアプリとメッセージのやり取りってできますか?
65 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 20:37:43 ] 出来ますよ そういうCOMを探すか作るかすれば
66 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 13:24:17 ] WSHってメッセージキュー扱えないのか
67 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 14:13:29 ] MSMQ使えるだろ
68 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 22:15:19 ] NGワード そういうCOM
69 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 22:31:06 ] UWSC使えば?
70 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 08:35:11 ] Office2007+Vistaなんですが、MSEもしくは、それ相当のものってないんですか?見あたりません
71 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 09:06:44 ] >>68 WSHはいわばCOMを使う土台なわけで COMを使うことを否定したら何にも出来ないぞ COMを使うこと自体は否定しないが、COMのDL先書いて そのCOMを使ったコードまで書いてくれなきゃヤダってなら 自分でブログラムを書く人が集まる場であるこの板に来るのが間違い
72 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 12:55:18 ] >>71 がこの板に来るのが間違い
73 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 19:07:02 ] >>71 中身がないレスは読む価値もないってだけの話
74 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 21:12:29 ] 悔しかったの?
75 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 22:58:18 ] >>71 は例の基地外なのか
76 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:16:04 ] >>71 中身がないレスしかできないってだけの話
77 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 03:22:31 ] COMでWordファイルに書き出したりするプログラム書いてみたのですが ログインユーザがAdministrator権限あるときはちゃんと動くのですが ないときは例外が出るみたいです Administrator権限がないとCOMでOfficeの*.Applicationにはアクセス出来ないのでしょうか?
78 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 07:58:27 ] >>77 セキュリティオプションの「Visual Basic プロジェクトへのアクセスを信頼する」あたりをチェックすればいけるんじゃないの? 確認してないけど
79 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:12:27 ] やってみます ありがとうございました
80 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 03:21:41 ] >>77 ttp://support.microsoft.com/default.aspx?scid=kb;ja;257757
81 名前:デフォルトの名無しさん [2008/06/05(木) 06:28:49 ] >>80 >>77 じゃないけど自分も同じような現象で過去あきらめた. で,リンク先読んでみたいんだけど,いまいちわからなかた. リンク先で言及されているのは,サーバ内でWordのファイルを 自動生成するというような話だよね.>>77 は普通の クライアント環境で対話的に使っているのだと思うんだけど.
82 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 06:56:29 ] >>80 何度読んでも眠たくなる文章だ
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 ] サクラ