WSH(・∀・)スレッド!
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG誰か詳しい情報キボンヌ
0552デフォルトの名無しさん
2006/05/03(水) 17:13:18> 迄は分かるんだが、
全然わかってないってことじゃんw
Set reader = CreateObject("〜")
は調べるまでもなくわかることだし。
まあとりあえずリファレンスでも読んでこい。
リファレンス読んで解らないなら、ここで説明しても理解できないだろうし。
0553551
2006/05/03(水) 22:06:15>>552
> 全然わかってないってことじゃんw
> まあとりあえずリファレンスでも読んでこい。
説明足らなかった。ゴメン。
サンプルとしてMSDNのJumpStart for Creating a SAX2のVB版とC++版が有ったんだが、IVBSAXContentHandler(ISAXContentHandler)継承(VBはImplements)したクラスをSAXXMLReaderのcontentHandler(putContenthandler())に渡してたのよ。
これWSHでどうやるのかな、と。
勝手に実装したクラス作って渡してみても『型が違う』って怒られるし。
調べてみたら『出来ない』って。しょうがない、DOMでやるか。
0554デフォルトの名無しさん
2006/05/08(月) 02:46:20WindowsのVersionを調べるのってWSHから可能でしょうか?
0555デフォルトの名無しさん
2006/05/08(月) 05:52:08Versionつっても具体的にどーゆーVersion?
95/98/Me/NT/2000/XP/2003 みたいな区別を付けたいの?
ビルド番号やSPを知りたいの?
英語版/日本語版/International版みたいな違いを知りたいの?
質問する時はもっと明確質問してくれないと、困るよ君ぃ。
0556デフォルトの名無しさん
2006/05/08(月) 08:25:040557デフォルトの名無しさん
2006/05/08(月) 10:34:05ビルド番号は「ビルド番号」
SPは「サービスパック適用状態」
英語版/日本語版/International版みたいな違いは「言語区分」
0558デフォルトの名無しさん
2006/05/08(月) 10:49:200559デフォルトの名無しさん
2006/05/08(月) 10:53:030560デフォルトの名無しさん
2006/05/08(月) 14:08:020561デフォルトの名無しさん
2006/05/08(月) 14:49:51たかが、3つや4つなら、それぞれの回答を書いてやれば良いじゃんw
漏れは調べないと分かんないから、そこまでしてやる気はないが
0562554
2006/05/08(月) 18:59:29ExcelVBAからなら、Windowsのバージョンを取得できるみたいなので、
Excelオブジェクトを宣言して使えばとりあえず対応できそうです。
9x系かNT系かで、内部処理を変えたかったもので…。
ちなみに今までは、If WScript.CreateObject("WScript.Network").ComputerName = "〜" Then
で、根気よく対応していました。
わざわざMeに、Excelインストールするのが面倒なので、IEオブジェクトでも、似たのが
なかったか探してみます。
レスありがとうございました。
0563デフォルトの名無しさん
2006/05/08(月) 19:04:06> 9x系かNT系かで、内部処理を変えたかったもので…。
そのくらいなら環境変数 ComSpec で判断すればいいと思うけど。
0564デフォルトの名無しさん
2006/05/12(金) 23:23:58糞ソフトの宣伝乙
0565562
2006/05/21(日) 11:16:51WScript.CreateObject("WScript.Shell").Environment.Item("COMSPEC")
できました。ありがとうございましたー
0566デフォルトの名無しさん
2006/06/02(金) 00:39:07CreateObject("Scripting.FileSystemObject").GetFolder(パス).SubFolders
からFor Each 文を使用してサブフォルダのリストを取得出来ますが
For Eachを使わずに・・SubFolders.Item(1)のような形で同じようにパスの
取得をすることは可能でしょうか?
ググってみましたが、For Eachの方法しか見つかりませんでした。
0567デフォルトの名無しさん
2006/06/02(金) 01:15:05一旦配列に入れてみるとかしか思いつかないや
0568デフォルトの名無しさん
2006/06/02(金) 01:19:220569566
2006/06/02(金) 01:35:49自分も検索して
Folders.Item("MyFolder")のようにフォルダ名を入れれば取得出来ることは確認出来た
のですが・・フォルダ名ではなく整数型で取得は出来ないものかと思っています。
0570デフォルトの名無しさん
2006/06/02(金) 01:43:44やりたいのなら配列に入れ直せ。
0571566
2006/06/02(金) 01:52:14ありがとうございました。
0572デフォルトの名無しさん
2006/06/02(金) 18:33:56本屋に行ってもイマイチ良さそうなのが無いので
0573デフォルトの名無しさん
2006/06/02(金) 18:42:540574デフォルトの名無しさん
2006/06/02(金) 19:46:550575デフォルトの名無しさん
2006/06/02(金) 20:45:06vbs ⊂ WSH … って考えたら (ここ "WSH(・∀・)スレッド! " だし)
http://pc8.2ch.net/test/read.cgi/win/1126543183/2-5
大概は
ttp://download.microsoft.com/download/winscript56/Install/5.6/W98NT42KMe/JA/scd56jp.exe
ttp://www.roy.hi-ho.ne.jp/mutaguchi/wsh/
あたりなのかな?
WSHを始めよう − @IT
http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh01/cformwsh01_01.html
なんてのも始まったネ。
0576デフォルトの名無しさん
2006/06/03(土) 12:12:47おれはここから始めたよ
@IT:運用 Windows管理者のためのWindows Script Host入門
http://www.atmarkit.co.jp/fwin2k/operation/wsh01/wsh01_01.html
0577デフォルトの名無しさん
2006/06/04(日) 13:06:02糞サイトの宣伝乙
0578デフォルトの名無しさん
2006/06/04(日) 13:49:16内容が理解できない = 糞サイト?
0579デフォルトの名無しさん
2006/06/04(日) 15:00:240580デフォルトの名無しさん
2006/06/04(日) 22:51:430581デフォルトの名無しさん
2006/06/04(日) 23:32:43俺もあそこの情報は重宝してるが、質については弁護できんな。
0582572
2006/06/05(月) 09:35:25紹介して頂いたページで勉強してみます
0583デフォルトの名無しさん
2006/06/16(金) 16:38:03取得する方法はないのでしょうか?
具体的には、ネットワーク内のあるコンピュータの起動状況を確認して
起動していればネットワークドライブに接続するスクリプトを書きたいのですが・・・
0584デフォルトの名無しさん
2006/06/16(金) 17:33:58> 取得する方法はないのでしょうか?
あるよ。
つ Google
0585デフォルトの名無しさん
2006/06/16(金) 18:49:26とりあえずcscriptの方で動かしてます。
0586デフォルトの名無しさん
2006/06/17(土) 10:35:270587デフォルトの名無しさん
2006/06/17(土) 11:53:06set wbemServices = GetObject("winmgmts:{impersonationLevel=impersonate}")
この行のあるプログラムをcscriptで実行しようとしたとき、(実行者はAdministrator)
Server 2003 では問題出ないのですが、2000 Server 上では
(ソースファイル名)(上の行の番号) SWbemServices: アクセスは拒否されました
というメッセージが出て止まってしまいます。
wbemServices や impersonate で検索してみたのですが、
impersonate が権限を取得出来る可能性が高いので推奨
というくらいのことしか分かりませんでした。
何か解決策をご存知の方はいらっしゃいますでしょうか?
0588デフォルトの名無しさん
2006/06/17(土) 12:02:58検索してたら
「SeSecurityPrivilegeが割り当てられている必要があります」
「ない場合は、"Access Denied"がアプリケーションに返されます」
という記述が見つかりました
もう少し調べてうまくいったらご報告します
0589デフォルトの名無しさん
2006/06/17(土) 18:12:41ただしBフォルダ以外。
上記の操作をWSHで可能ですか?
色々調べたんですが、一時的にBフォルダを別の場所に移動
してから一括削除する方法位しか思いつかなくて・・・
0590デフォルトの名無しさん
2006/06/17(土) 18:32:51さんくす
0591デフォルトの名無しさん
2006/06/17(土) 18:54:56Aフォルダ自体に削除処理を掛けることばかり考えずに
Aフォルダ以下のSubFolders、Filesをループで削除する処理を作って
そのループの中でBフォルダの名前に一致した場合は削除処理を行わないようにすれば良い。
つーか
> 時的にBフォルダを別の場所に移動
> してから一括削除する方法
に何か問題でもあるの?
別パーティションに移動するとかなら移動処理に時間が掛かるだろうが
Bフォルダのパスを2回書き換えるだけで実際には移動せずに済むんだから、
そういう不都合も無いでしょ。いったい何が不満なの?
0592デフォルトの名無しさん
2006/06/17(土) 19:28:360593デフォルトの名無しさん
2006/06/17(土) 19:33:13何やらXPだとかサービスパックだとかの場合、ADODBが殺されて使えない、
というような話を聞いたのですが本当なのでしょうか?
ADODBを使ったスクリプトを他人のコンピュータ(特にXP)でも動作させたいのですが、どういう状況なのか教えてくださいませ。
0594デフォルトの名無しさん
2006/06/17(土) 19:42:58しね
0595デフォルトの名無しさん
2006/06/17(土) 23:17:29Set SettingFile1 = 〜
Dim SettingFile2
Set SettingFile2 = 〜
みたいなのを動的に増やしていきたいのですが、
どうすればいいのでしょうか?
0596デフォルトの名無しさん
2006/06/17(土) 23:24:410597589
2006/06/18(日) 04:42:54Bフォルダの容量が大きいので、移動は避けたかったんですよ。
で、教えて頂いた通りにやってみるとできました!
objStartFolder =
ShowSubfolders objFSO.GetFolder(objStartFolder)
Sub ShowSubFolders(Folder)
For Each Subfolder in Folder.SubFolders
Set objFolder = objFSO.GetFolder(Subfolder.Path)
ShowSubFolders Subfolder
If not objFolder = objStartFolder & "Bフォルダ" Then
objFSO.DeleteFolder(objFolder),true
End If
Next
End Sub
0598デフォルトの名無しさん
2006/06/18(日) 19:49:21変数に格納されている文字列を元にした名前を持つグローバル関数を定義したいのですが
WSH ではグローバル変数・関数が集まっているオブジェクトって存在するのでしょうか?
(ブラウザでのJavaScript実行環境における window にあたるオブジェクト)
具体的には InternetExplorer のイベントを監視する為に
function observe(s, f) { window["InternetExplorer_On" + s] = f; }
のようなコードを書きたいのです。
Global オブジェクトかな、とも思ったのですが、うちの環境(Windows XP sp2)では
参照しようとするとエラーがでてしまいます。なんで…(´・ω・)
eval を使う手も考えましたが、実行されるのが関数の中なのでグローバルにできません…。
0599デフォルトの名無しさん
2006/06/18(日) 20:11:120600598
2006/06/18(日) 20:28:20いえ、マルチとならないよう、向こうのスレで質問を中止する旨を書き込んだのですが
まずかったのでしょうか…。こちらのスレに移動する、という事も書きました。
0601デフォルトの名無しさん
2006/06/18(日) 21:42:38代用法はあるが、そのものの方法は無い。
0602デフォルトの名無しさん
2006/06/19(月) 19:03:270603デフォルトの名無しさん
2006/06/19(月) 20:36:150604デフォルトの名無しさん
2006/06/19(月) 23:44:160605デフォルトの名無しさん
2006/06/20(火) 02:26:33更新されていればダウンロードし、「ファイル名+日付.pdf」リネームする
するスクリプトを作りたいんですが、他の部分はともかくネット上のファイルに
アクセスする方法がわからないのですが、何かよい方法はあるでしょうか?
0606デフォルトの名無しさん
2006/06/20(火) 03:57:24そもそもそのサーバが最終更新日時をヘッダに含めてくれるのか? とか。
If-Modified-Since ヘッダを使えばできるかもな。
0607605
2006/06/21(水) 00:15:12XMLHTTPでなんとかアクセスできるようにはなりましたけど、
タイムスタンプの取得がうまくいきませぬ。
If-Modified-Sinceヘッダに関しては、
ttp://www.su-jine.com/sujine_seo_if-modified-since_checker.php
こんなサイト発見して、目的のサーバが対応してるところまでは
調べれましたが、問題はそのヘッダをどうやって送るかが、わかりませぬ。
もちろんググッてはみたもののヘッダ送信に関する資料が見つからず・・・。
あればできそうなのに・・・。HTTPの仕様に関する資料とか探せばいいのかな?
とにかく助言ありがとうございました。
0608デフォルトの名無しさん
2006/06/21(水) 00:56:28XMLHTTP.setRequestHeader("If-Modified-Since", last_modified);
> もちろんググッてはみたもののヘッダ送信に関する資料が見つからず・・・。
XMLHTTP ヘッダー
でググったら一発で見つかったけど・・・?
0609605
2006/06/21(水) 01:08:36おかげでなんとか出来そうです。
ありがとうございました。
0610デフォルトの名無しさん
2006/06/24(土) 15:49:450611デフォルトの名無しさん
2006/06/24(土) 15:59:390612デフォルトの名無しさん
2006/06/24(土) 18:15:18教えてくれたら死にます。なので教えて下さい。
原因はおそらくADODBがIObjectSafetyをサポートしているのでIEから使えてしまう事が原因だと思いますが、これの対策としては
1. ADODBをIObjectSafety非サポートに変更
2. ADODBのレジストリ登録を削除
3. ADODBのモジュール自体を削除
のいずれかだと思います。MSが取った対策はどれですか?
#・・・しかしスクリプトな人達って疲れる・・・(^^;)
0613デフォルトの名無しさん
2006/06/24(土) 18:17:56関連付け設定していれば、スクリプトファイル(コードを書いたファイル)を実行してるように感じるかもしれないが、
その実、Wscript.exeを実行して、スクリプトファイルを渡すという処理が行われている。
exeが実行できなかったら、.vbsや.jsを実行(ダブルクリック、Enter)したって何も起きない。
0614デフォルトの名無しさん
2006/06/24(土) 18:28:19教えたら死ぬという確かな証拠と、
あなたの死後、死んだことを証明するものを提示する手段を明らかにしてください。
>教えてくれたら死にます。
という前提があって
> なので教えて下さい。
という欲求があるのだから、当然前提は明確にしないとね。
0615デフォルトの名無しさん
2006/06/24(土) 21:59:11お前みたいなレスは一番(゚�听)イラネ
0616デフォルトの名無しさん
2006/06/24(土) 22:02:14オマエモナー
0617デフォルトの名無しさん
2006/06/24(土) 22:11:49ID出ない板は便利だね( ̄ー ̄)ニヤリッ
0618605
2006/06/25(日) 00:26:49とりあえず、ファイルの更新日時をチェックする部分はできますた。
url = "http://....../xxx.pdf"
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
Call objHTTP.Open("GET",Url,False)
objHTTP.send
Last_Modified = objHTTP.getResponseHeader("Last-Modified")
s = split(Last_Modified)
strWeekday = s(0)
strDay = s(1)
strMonth = s(2)
strYear = s(3)
strTime = s(4)
こんな感じで更新日時はゲットできますた。
教えていただいた方にまずは感謝です。
アリガト!(´▽`)
あとはダウンロードするだけですが、
HTMLとかテキストデータをDLする方法はいくつか見かけたのですが、
バイナリファイルのダウンロードの方法はどんな方法があるのでしょうか?
0619デフォルトの名無しさん
2006/06/25(日) 00:32:47てか XMLHTTP だけでも(アップロードだが)バイナリデータのがトップだ。
0620デフォルトの名無しさん
2006/06/25(日) 00:58:490621605
2006/06/25(日) 01:22:52XMLHTTPだけでも〜〜〜
って、ことはXMLHTTPを使えばできるってことですよね?
うーん、.ResponseTextメソッドとか.ResponseBodyメソッドとかを
使うってことですか?
>>620
普通に取ってデコードするってことは、
上記のような方法で取ってきたデータを
なんらかのデコード処理をしたあとでファイルに書き出すということでしょうか?
レスありがとうございました。
まだまだ検索が甘かったようなので、もう一度探しに行っていきます。
0622デフォルトの名無しさん
2006/06/25(日) 23:02:37バイナリはADODB.Streamで保存する
別にデコードはいらんだろ
0623デフォルトの名無しさん
2006/06/26(月) 00:05:450624605
2006/06/26(月) 00:28:41ここにそのまんまな解決方法が載っていました。
http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list80.shtml
ためしにサンプル通りに作ってみたところ見事ダウンロードできました。うはっ!!
もうあまりにまんまでなぜ見つけられなかったか、
自分の不甲斐なさに涙が出てきました。
レスして頂いた方々へ→本当にありがとうございました。m(__)m
0625612
2006/07/01(土) 20:28:54ttp://www.roy.hi-ho.ne.jp/mutaguchi/bbs/index.shtml
別のスレや掲示板で聞き直してもいいのですが、たくさんそういう事をすると検索の時に引っ掛かって邪魔だ、とよく言われるので。
0626デフォルトの名無しさん
2006/07/10(月) 01:40:01アロンのトコじゃねぇか、ソコの住人の方が詳しいんじゃね?
0627デフォルトの名無しさん
2006/07/29(土) 21:16:12糞掲示板の宣伝乙
0628デフォルトの名無しさん
2006/08/02(水) 19:47:220629628
2006/08/02(水) 20:12:57DynWrap Helper にまんまそのとおりのコードがありました。
0630デフォルトの名無しさん
2006/08/15(火) 11:45:30ただ単にappendChildで追加していってSaveすると
<root><item>a</item><item>b</item></root>
というファイルが出来るのですが、これを改行やインデントを入れて
<root>
<item>a</item>
<item>b</item>
</root>
とするには、何をすれば良いのですか?
まさか自前で文字列解析するなんてことはないだろうから
XMLDOMのプロパティなりなんなりでこの辺の設定が出来ると思うのですが
具体的にどうすれば良いのか解りません。ご教示お願いします。
0631デフォルトの名無しさん
2006/08/15(火) 15:01:49改行や空白もテキストノードの一種だから、データとしては前者の改行が無いものが正しいんだよね。
どうしても整形したいならXSLTで変換かなぁ。勘だけど。
0632デフォルトの名無しさん
2006/08/15(火) 19:37:59やるんだったらこう。
<root
><item>a</item
><item>b</item
></root>
0633デフォルトの名無しさん
2006/08/15(火) 20:00:52それは完全に間違い。
0634デフォルトの名無しさん
2006/08/15(火) 20:52:52脊髄反射するな。
0635デフォルトの名無しさん
2006/08/15(火) 23:05:23それらしきプロパティはあって、使えるかと思って以前試したけど
それほど簡単ではなかった。
DOMDocument には PreserveWhitespace というプロパティがあって、これが
falseのとき、ドキュメント内の空白は保存時に自動的にインデントされる仕様。
ところが、インデントする対象が "ドキュメント内の空白" なため、
以下のような既存文書を読んだ場合、
<root>
<item>a</item>
</root>
<root>と<item>の間、</item>と</root>の間は空白扱いなので、
書き込むときも(空白=>インデント変換によって)同様にインデントされるが、
新規に
<root><item>a</item></root>
というデータを作成してsaveしても途中に空白がないので、保存しても
そのままではインデントしてくれない。
仕方がないので、要素をルートから再帰的にたどってタグとタグの間に
テキスト要素がなければ問答無用で1つの空白を挿入するという補助関数
を作って保存前に呼んでた。
0636630
2006/08/16(水) 09:50:58> 改行や空白もテキストノードの一種だから、データとしては前者の改行が無いものが正しいんだよね。
> そこはデータだから勝手に整形しちゃいかん。
それは違うと思います。確かに改行や空白はテキスト要素として扱われます。
だから<root>をテキストノードとして扱い、余計な改行や空白が入っては拙い場合は、前者の書き方が正しいと言えますが
<root>がエレメントノードであり、テキスト要素を利用しない場合は、テキスト要素に何が入ろうと間違いも問題もありません。
つまり改行や空白を入れれば、それらもテキスト要素として取得されるという仕様なだけの話であり、
テキスト要素に改行や空白を使ってはいけないなんてことはないので、改行や空白が取得されては困る場合だけ避ければ良いことだと思います。
少なくとも>>630後者の記述は、仕様に沿った正しいXMLファイルとして扱えています。
>>633
間違いでは無いと思いますよ。
>>632も>>630後者も、どちらもXMLの仕様には違反していません。
ただ条件付きで>>630後者は、<root>のテキスト要素に改行や空白は入っては拙い場合は不都合があるというだけです。
>>635
ありがとうございます。理想通りに改行&インデントされました。
やはりこういう記述を正式にサポートしてたのですね。
0637デフォルトの名無しさん
2006/08/16(水) 10:54:420638デフォルトの名無しさん
2006/08/16(水) 11:06:570639デフォルトの名無しさん
2006/08/17(木) 05:42:200640デフォルトの名無しさん
2006/08/17(木) 11:33:48Windowsならどんな環境でも大体は実行できるのに。
コード隠蔽したいってこと?
0641デフォルトの名無しさん
2006/08/17(木) 17:27:39http://www.vector.co.jp/soft/win95/prog/se277804.html
0642デフォルトの名無しさん
2006/08/17(木) 17:36:51普通のウインドウも作れる?
0643デフォルトの名無しさん
2006/08/17(木) 17:59:220644デフォルトの名無しさん
2006/08/17(木) 19:42:430645デフォルトの名無しさん
2006/08/17(木) 19:51:160646デフォルトの名無しさん
2006/08/17(木) 19:53:30コンパイラ jsc.exe はバージョンの新しい順に
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322
C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705
あたりにある。
とは行ってもWSHのJScriptはほとんどそのままではコンパイルできないね。
0647デフォルトの名無しさん
2006/08/17(木) 19:56:340648デフォルトの名無しさん
2006/08/17(木) 20:04:420649デフォルトの名無しさん
2006/08/21(月) 20:42:48Aというコンピュータのa.batからBのコンピュータのb.vbsを起動させたい。
b.vbsはあくまでもB自身で起動させたいというのがポイントです。
(Bのメモリ空間で実行したい)
どんなコマンドを書けば実行できますか?
ヒントでもいいから教えてもらえると助かります。
0650デフォルトの名無しさん
2006/08/21(月) 20:46:58> どんなコマンドを書けば実行できますか?
普通に。
0651デフォルトの名無しさん
2006/08/21(月) 20:48:37操作可能なプログラムまたはバッチ ファイルとして認識されていません。
0652デフォルトの名無しさん
2006/08/21(月) 23:02:06WshControllerというのがあるらしい。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/wsconRunningScriptsRemotelyRunningScriptOverThereFromHere.asp
とか
■ このスレッドは過去ログ倉庫に格納されています