お前ら、wsh使ってますか? Part7
- 1 :名無し~3.EXE:2007/09/23(日) 21:02:25 ID:2RosR0QK
- こんなことコンピュータにやらせろよ。そう思ったことはありませんか?
簡易的な実行環境も含めて普通のOSだったら当たり前に備わっている自動実行。
Windowsの標準に備わっているそれがWSH(Windows Script Host)です。
また、ここではWSHだけに限らずWMI、ADSIなどのネタもOKです。
・煽りや荒らしは無視の方針で。基本的にsage進行です。
・ここでヒントを得て完成したスクリプトは、出来れば皆さんにお披露目してください。
同じことで悩んでいる人のためになります。
・質問する際は、OS及び使用するコンポーネントのバージョンもお忘れなく。
●過去スレ
#1 http://pc.2ch.net/test/read.cgi/win/1009175619/
#2 http://pc2.2ch.net/test/read.cgi/win/1022248379/
#3 http://pc8.2ch.net/test/read.cgi/win/1058829737/
#4 http://pc8.2ch.net/test/read.cgi/win/1100489339/
#5 http://pc8.2ch.net/test/read.cgi/win/1126543183/
#6 http://pc11.2ch.net/test/read.cgi/win/1155040873/
その他 >>1-10 あたり
- 2 :名無し~3.EXE:2007/09/23(日) 21:03:13 ID:2RosR0QK
- ●便利なリンク
Windows Script
http://www.microsoft.com/japan/msdn/scripting/default.asp
MSDN Library (オンラインドキュメント)
http://msdn.microsoft.com/library/ja/
Windows Script 5.6 ドキュメント ダウンロード (exe 形式; 1.67 MB)
http://download.microsoft.com/download/winscript56/Install/5.6/W98NT42KMe/JA/scd56jp.exe
OLE/COM Object Viewer ダウンロード (exe 形式; 656 KB)
http://download.microsoft.com/download/win2000platform/oleview/1.00.0.1/NT5/EN-US/oleview_setup.exe
Sesame Script (スクリプト作成初心者向けコラム)
http://www.microsoft.com/japan/technet/scriptcenter/resources/begin/default.mspx
Hey, Scripting Guy! (スクリプトのQ&A・ハウトゥ集)
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/default.mspx
Windows管理者のためのWindows Script Host入門 (@IT内記事)
http://www.atmarkit.co.jp/fwin2k/operation/wsh01/wsh01_01.html
Windows XP に含まれるコマンドラインツールの紹介 (@IT内記事)
http://www.atmarkit.co.jp/fwin2k/xp_feature/013commandtool/commandtool.html
ADSI (Active Directory Service Interfaces) の特集記事全文
http://web.archive.org/web/20050309045811/http://www.galliver.co.jp/writing/nikkei_tokushu/wad002/index.html
●個人サイト
Windows Script Wiki
ttp://winscript.s41.xrea.com/wiki/index.php
趣味のJavaScriptなページ
ttp://homepage3.nifty.com/aya_js/
Windows Scripting Host Laboratory
ttp://www.roy.hi-ho.ne.jp/mutaguchi/wsh/
Tips - (小技にも満たない)微ワザ集
ttp://www1.u-netsurf.ne.jp/~tomo_c/tips/Scr002.html
- 3 :名無し~3.EXE:2007/09/23(日) 21:11:50 ID:2RosR0QK
- ●コンポーネント関連リンク
○Microsoft 製外部コンポーネント
DCOM
(98/Me ※リンク切れ) http://www.microsoft.com/japan/com/dcom/dcom98/dcom13.asp
(95) http://www.microsoft.com/japan/com/dcom/dcom95/dcom13.asp
MDAC - データベース・メールボックス・WebDAV・バイナリの操作
http://msdn2.microsoft.com/ja-jp/data/aa937730.aspx
WMI(95/98/NT4.0) - 統一されたコンピュータオブジェクト化モデルを提供するスクリプティングAPI、リモート管理
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=AFE41F46-E213-4CBF-9C5B-FBF236E0E875
ADSI - Active Dictoryの機能を操作
http://www.microsoft.com/downloads/details.aspx?FamilyID=f4bf2bf6-ed15-4789-9c63-e849d530a6df&DisplayLang=ja
MSXML - XMLパーサ、SAX・DOM API、XSLT変換、POST/HTTPダウンロード
http://www.microsoft.com/downloads/details.aspx?familyid=993c0bcf-3bcf-4009-be21-27e85e1857b1
○サードパーティ製外部コンポーネント
BASP21 - メール、ファイルエンコード、文字コード変換、FTP/HTTPアップ、その他
http://www.hi-ho.ne.jp/babaq/basp21.html
Doodle2 - グラフィック変換、操作、描画
http://www.vector.co.jp/soft/winnt/prog/se219120.html
DynaCall - Win32APIコール
http://people.freenet.de/gborn/WSHBazaar/WSHDynaCall.htm
AutoItX - マウス・キーボード・クリップボード操作
http://www.hiddensoft.com/AutoIt/
- 4 :名無し~3.EXE:2007/09/23(日) 21:12:36 ID:2RosR0QK
- ●WSH(COM)参考書籍
「はじめてのWindows Scripting Host」 (株)アンク著 技術評論社
http://www.amazon.co.jp/gp/product/477410650X/
「[改訂版] VBScriptポケットリファレンス」
http://www.amazon.co.jp/gp/product/4774127930/
「使いながら覚えるWindows Scripting Hostプログラミング入門」 竹田英雄著 エーアイ出版
http://www.amazon.co.jp/gp/product/4871936678/
「Windows Scripting Host入門 with VBScript」 毎日コミュニケーションズ
http://www.amazon.co.jp/gp/product/4839900906/
「WSHで楽しむWindows95/98/NT4.0版 ウィンドウズ・スクリプティング入門 VBScript編」 メディアテック出版
http://www.amazon.co.jp/gp/product/4896270207/
「WSHクイックリファレンス」 羽山博著 オライリー・ジャパン
http://www.amazon.co.jp/gp/product/4873110068/
「Rubyを256倍使う本 邪道編」 arton著 ASCII
http://www.amazon.co.jp/gp/product/4756136036/
「ADSIスクリプトによるWindows2000システム管理 Windows2000管理者ガイドブック」ピアソン・エデュケーション トーマス・エック 著
http://www.amazon.co.jp/gp/product/4894712881/ (どちらかというとVBによる操作本?)
「標準ASPテクニカルリファレンス」山田祥寛著 SOFTBANK
http://www.amazon.co.jp/gp/product/4797314001/
- 5 :名無し~3.EXE:2007/09/23(日) 21:13:43 ID:2RosR0QK
- ●JavaScript、VBScript 以外のWSHで使える言語
TCLScript
http://tclscript.sourceforge.net/
Perl
http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl
Ruby
http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/
Python
http://www.python.jp/Zope/download
PHP
http://www.php.net/downloads.php
REXX
http://www.borg.com/~jglatt/rexx/win32/rxusrw32.htm
- 6 :名無し~3.EXE:2007/09/23(日) 21:17:29 ID:2RosR0QK
- テンプレ以上(・∀・)
見つけられなかったところはリンク切れって書いといた(・∀・)
次スレも立てずに意味もなく埋めた糞コテは死ね(・∀・)
コロコロとページのURLを変えるMSも死ね(・∀・)
- 7 :名無し~3.EXE:2007/09/23(日) 21:58:37 ID:U0hs+MX3
- >>1
乙
>コロコロとページのURLを変えるMSも死ね(・∀・)
いやまったく
くだらねぇ仕掛けでリソースをムダに使わせるページ構造も許せん、マジで
- 8 :名無し~3.EXE:2007/09/24(月) 01:10:29 ID:DEYMCrth
- >>前スレ990
CStrとかArrayとかの関数を駆使してデータ型をあわせてやることってできない?
試せるものなら俺も試してみたいんだけど、なんのAxコンポーネント?
- 9 :名無し~3.EXE:2007/09/24(月) 03:36:57 ID:SjghtxEN
- >>1乙
発言番号>>11はM口さんのために空けておいてあげて下さい。
- 10 :名無し~3.EXE:2007/09/24(月) 15:38:21 ID:pjBtfzoG
- 型指定できる言語使うか、ラップするか、型を変換するCOMを作るか白
手っ取り早いのはpowershellかのー
- 11 :11:2007/09/24(月) 16:06:57 ID:eaufB3wz
- どうもです。しつこくWSHやってる11でございます。
とある方より連絡を受け参上した次第です。
あまりこちらは見てないですがすみません。
Windows Server World11月号にPowerShellの記事を書いたので良かったらみてください。
チェック式 WSH入門
―― 演習方式で身につけるWSH超入門 ――(@IT連載記事)
http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh01/cformwsh01_01.html
もよろしくです。
宣伝乙。ではではー。
- 12 :名無し~3.EXE:2007/09/25(火) 06:58:53 ID:R70FuRMC
- >>11
M口乙w
- 13 :名無し~3.EXE:2007/09/25(火) 10:45:34 ID:4yTvHEKx
- >11
ウィルスバスターが反応したぞ
阿龍お前なに仕込んだんだ
- 14 :名無し~3.EXE:2007/09/25(火) 10:57:22 ID:+FFzqz0l
- >>13
おじいちゃんご飯はさっき食べたでしょ
- 15 :名無し~3.EXE:2007/09/25(火) 11:29:33 ID:4yTvHEKx
- >14
だれじゃお前は!さっさとこの家から出ていけ!
- 16 :名無し~3.EXE:2007/09/25(火) 14:06:05 ID:rEJuuZC8
- >>15
60年連れ添った女房の顔も忘れるなんてねぇ・・・
おじいちゃんもいよいよだねぇ
- 17 :名無し~3.EXE:2007/09/26(水) 19:48:03 ID:9NizuYkF
- InternetExplorer.Applicationでウィンドウの右上の最大化ボタンを押すのと同等のメソッドかプロパティありましたっけ?
画面サイズを取得してサイズをあわせるしかないですか?
- 18 :名無し~3.EXE:2007/09/27(木) 11:31:10 ID:DeYmWi7c
- >>11
第1回 WSHを始めよう
Microsoft MVP
Visual Developer - Scripting
牟田口 大介
2006/06/02
- 19 :名無し~3.EXE:2007/09/29(土) 22:36:16 ID:/mN/rW/R
- スクリプトから「ctrl+ホイール」する方法はありませんか?
- 20 :名無し~3.EXE:2007/10/03(水) 18:45:52 ID:kYrf4Oeu
- HTTP/1.1 304 Not Modified
( ・∀・)(・∀・ )オツカイオワリ 三三三三3
(・∀・∀・)
(-_-) 誰もカキコしてない・・・
(・∀・)カンリョウ!!
- 21 :名無し~3.EXE:2007/10/08(月) 14:18:28 ID:T+jdN/55
- WSH=VBS?
- 22 :名無し~3.EXE:2007/10/08(月) 14:27:27 ID:a9zIH+L7
- no
- 23 :名無し~3.EXE:2007/10/10(水) 18:43:26 ID:AV8fHOm1
- (-_-) 誰もカキコしてない・・・
- 24 :名無し~3.EXE:2007/10/13(土) 23:30:13 ID:g349oLgE
- jsでもvbsでもどっちでもいいから
「ディスク上のサイズ」を取得する方法が知りたい・・・
>>19
sendkeysでctrlとscrolllockじゃダメ?
・・・イヤ、ミテナイダロウケド
- 25 :名無し~3.EXE:2007/10/13(土) 23:34:39 ID:h3t5db0s
- >>24
WinAPIでサイズ取得して標準出力するexeをCで組んでそのexeを叩いたらできたけど
WSHだけで出来るか、ってことだよね?
- 26 :名無し~3.EXE:2007/10/14(日) 00:44:25 ID:g85L0OLw
- クラスタ/アロケーションユニット単位に切り上げればいいんじゃない?
- 27 :名無し~3.EXE:2007/10/14(日) 16:00:24 ID:znuraTmG
- >>25
圧縮されてたらサイズが違うってことじゃないの?
- 28 :名無し~3.EXE:2007/10/14(日) 21:59:46 ID:h2hqAvvC
- スクリプトちょこっと組んでみたけど・・・
膨大なオブジェクトメソッドプロパティの中から使えるもの探すの大変だった
いちいちネットで調べて作ってると時間いくらあっても足らない
これがプログラミングってやつなのか、大変なんだな
- 29 :名無し~3.EXE:2007/10/18(木) 16:51:24 ID:oIaJudOl
- 2chの鯖のリンクだけスレ内から抽出してテキストファイルに保存。
それのやりかた教えて。
- 30 :名無し~3.EXE:2007/10/18(木) 17:17:10 ID:Docvv0YL
- >>29
自分で調べろカス
- 31 :名無し~3.EXE:2007/10/18(木) 17:35:45 ID:oIaJudOl
- >>30
いいから教えろ包茎
- 32 :名無し~3.EXE:2007/10/18(木) 17:40:52 ID:Docvv0YL
- ヽ(`Д´)ノウワァァン
- 33 :名無し~3.EXE:2007/10/18(木) 17:43:45 ID:OysiApEQ
- 対象ファイルをhtmlにするかdatにするかで違ってきますね
- 34 :名無し~3.EXE:2007/10/18(木) 18:13:47 ID:oIaJudOl
- >>33
いや、htmlでもなくDatでもなく、TEXTでいいんです。
テキストファイルに2ch鯖だけのリンクを抽出したファイルを作りたいんです。
何をするのかというとp2todatでリスト化されたURLリストを順番に読み込んで実行していきたいんです。
もちろん、鯖にやさしく過剰なアクセスやクロール行為などはやりません。
おしえてくださいまし。
- 35 :名無し~3.EXE:2007/10/18(木) 18:19:04 ID:oIaJudOl
- >>32
すいませんでした。
- 36 :名無し~3.EXE:2007/10/18(木) 18:37:01 ID:mX/8qEJB
- > 鯖にやさしく過剰なアクセスやクロール行為などはやりません。
信用できないな
そもそも手動でやってれば間違いなく鯖に優しいアクセスになる
自力でスクリプト書けないような無能は、本人が鯖への配慮もしてるつもりでも実際は出来てないだろうから
強制的に鯖に優しくなる手動でやらせておくのが吉
- 37 :名無し~3.EXE:2007/10/18(木) 18:41:58 ID:oIaJudOl
- >>36
わかった。やめとく。
- 38 :名無し~3.EXE:2007/10/19(金) 22:01:23 ID:pnnmUMtF
- OS: XP sp2
wshのバージョン: 5.6
マシンを再起動するコードを教えてくれませんか?
Set WSHSHell=CreateObject("WScript.Shell")
WSHShell.Run "C:\WINDOWS\system32\RUNDLL32.EXE Shell32.dll,SHExitWindowsEx 2"
としても、エントリがありません、と出てしまいます
- 39 :名無し~3.EXE:2007/10/21(日) 21:29:17 ID:/eU1MNMN
- >>38
http://homepage2.nifty.com/winfaq/w2k/boot.html#1179
- 40 :38:2007/10/21(日) 22:38:04 ID:HYDYzM0Q
- >>39
ありがとうございました
- 41 :名無し~3.EXE:2007/10/22(月) 03:42:43 ID:yIINOAp1
- fs = new ActiveXObject("Scripting.FileSystemObject");
var objOutFile = fs.CreateTextFile("C:\\test.txt",1,1);
objOutFile.Write("ほげ");
objOutFile.Close();
こうすると、UTF-16で保存されてしまいますが、UTF-8で保存するにはどうしたらよいのですか?
- 42 :名無し~3.EXE:2007/10/22(月) 04:08:55 ID:iIIEEuoP
- ADODB.Stream UTF-8
- 43 :名無し~3.EXE:2007/10/23(火) 23:15:16 ID:klW0leS2
- strComputer = "nullpo"
Set CPUSet = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2").InstancesOf("Win32_Processor")
for each CPU in CPUSet
Wscript.Echo "LoadPercentage:" & CPU.LoadPercentage
next
これでCPU(コア)ごとのCPU使用率取れますか?
おらのデュアルコアCPUマシン(Athlon64×2)では1つしか取れないんだけど?
- 44 :名無し~3.EXE:2007/10/26(金) 07:09:14 ID:YLBr5NF8
- どっかの他PCにアクセスしてユーザ名とパスワード入力した状態って出来ますか?
NET USE使うしかないんでしょうか?
ドライブの割り当てはしたくないんですが。
- 45 :名無し~3.EXE:2007/10/26(金) 22:52:57 ID:IfzcXnJl
- >>44
NET USE はドライブ名を割り当てなくても使える。
net help use かヘルプを参照しなさい。
- 46 :名無し~3.EXE:2007/10/26(金) 23:23:12 ID:YLBr5NF8
- 来週試してみます
- 47 :名無し~3.EXE:2007/10/27(土) 16:16:14 ID:5z6Mce+m
- 音声認識のプロパティ出さずに認識エンジンを設定することって出来ますかね?
- 48 :名無し~3.EXE:2007/10/27(土) 17:25:58 ID:l+KdL2rZ
- うん
- 49 :名無し~3.EXE:2007/11/04(日) 17:30:16 ID:gpAEphfP
- JScript + WSF でローカルで動作するバッチ処理的なプログラムを書いたのですが、
完成してから、FileSystemObjectでのファイル削除などがMcafeeの怪しいスクリプトを遮断する
機能によってブロックされるという致命的な問題に遭遇しました。
スクリプトを遮断する機能で毎回動作のたびに「許可」をクリックすることで回避可能ではありますが、
あまりに面倒なので常に許可するホワイトリストのようなものを探したが、見つからず。
Mcafeeに限らず、Nortonなどでも同様の問題が発生するようですが、同じような経験をされた方、
解決方法があれば教えてください。そもそもWSH以外でインストール不要で高機能なスクリプト言語があれば、
そちらに移行することも考えております。
- 50 :名無し~3.EXE:2007/11/04(日) 17:46:44 ID:M2Cn2wOu ?2BP(445)
- >>49
偉い方に教えてもらった対処法ですが
例えば
Set FS=CreateObject("Scripting.FileSyst" & "emObject") ;
の場合
Set FS=CreateObject("Scripting.FileSyst" & "emObject") ;
とかやったらどうでしょう?試してないですがノートン先生ならスルーしてくれそうな予感です。
というか
ノートンもマカフィーも入れてないので
これでOKなのかどうか教えてもらいたかったり。
- 51 :名無し~3.EXE:2007/11/04(日) 17:52:02 ID:M2Cn2wOu
- ああしまった・・
前半の
Set FS=CreateObject("Scripting.FileSyst" & "emObject") ;
は
Set FS=CreateObject("Scripting.FileSystemObject") ;
です
- 52 :名無し~3.EXE:2007/11/05(月) 18:54:01 ID:i5tJkBKd
- 質問です。
vbs でポップアップメニューを作成するには
どうすればよいのでしょうか?ヒントだけでも
お願いしまっす。
- 53 :名無し~3.EXE:2007/11/05(月) 22:14:26 ID:BlJ486bt
- MsgBoxってなかったっけ?
- 54 :名無し~3.EXE:2007/11/05(月) 22:25:18 ID:nKqW27R8
- あれをポップアップメニューとは呼ばん
- 55 :名無し~3.EXE:2007/11/06(火) 08:52:22 ID:mMTaAUe8
- >>52
VBS、WSHにそういう機能は有りません
実現したければそういうきのうのCOMを作るか探すかしてください
まぁ、AHKあたり使っちゃった方が手っ取り早いと思うけどね
- 56 :名無し~3.EXE:2007/11/06(火) 18:59:12 ID:M+s+xXd2
- エラーになります。
空白があるパスの対処方法を教えてください。
var shell = WScript.CreateObject("WScript.Shell");
shell.CurrentDirectory = 'C:\Documents\ and\ Setting\Administrator\デスクトップ';
- 57 :名無し~3.EXE:2007/11/06(火) 19:12:57 ID:PGoxeNfX
- いや、\のエスケープの問題だろ
- 58 :名無し~3.EXE:2007/11/06(火) 19:13:45 ID:Jd5jGHnW
- もうVBSを使え
- 59 :名無し~3.EXE:2007/11/06(火) 19:21:56 ID:M+s+xXd2
- >>56
「"」の場合は「\\」でやりました。
「'」の場合は「\」で問題ないようです。
- 60 :名無し~3.EXE:2007/11/06(火) 19:33:08 ID:PGoxeNfX
- あるよ
"と'は自分と違うのをエスケープなしに挿入できる("'"とか'"'とか書ける)以外差はない
で、エスケープってのはJScriptで文字列を表現できないから使うもんであって
空白は普通に表現できるのでJScriptとしてエスケープは不要
逆に\は\自体がエスケープ文字に使われているので\は普通に表現できないからエスケープする
CurrentDirectoryはそもそも空白を含むパスを受け入れられる
- 61 :名無し~3.EXE:2007/11/06(火) 22:55:43 ID:VprE58du
- /でも使っとけ
- 62 :52:2007/11/06(火) 23:48:32 ID:/MDmkMKN
- >>55
dです。COM か... 大変そうですな orz
- 63 :名無し~3.EXE:2007/11/07(水) 20:42:42 ID:Uk4caTay
- IEでそれっぽいUIでも作ればいいじゃん
- 64 :名無し~3.EXE:2007/11/08(木) 01:49:20 ID:7SUESWPj
- http://a-draw.com/contents/uploader2/src/up0726.txt.html
txt -> js
- 65 :名無し~3.EXE:2007/11/08(木) 02:08:04 ID:IM5eBTuj
- つ 「正規表現」
- 66 :名無し~3.EXE:2007/11/08(木) 21:35:38 ID:20qyuEPQ
- 前スレに引き続き指摘されますた。
- 67 :名無し~3.EXE:2007/11/09(金) 14:14:28 ID:kUQK3taz
- >>50
> Set FS=CreateObject("Scripting.FileSyst" & "emObject") ;
>>49じゃないけど、これはNG。
まあこの程度ですり抜けられるようじゃアンチウイルスの意味無いと思うし。
ただし、UWSCスクリプト内でFileSystemObject呼んだ場合は何にも言われないから
同様のパターンで実行可能なのがあるかもしれない。
- 68 :名無し~3.EXE:2007/11/09(金) 22:55:15 ID:mWYWjoAn
- IActiveScriptのものだけチェックしてるとか
- 69 :名無し~3.EXE:2007/11/11(日) 21:21:52 ID:AHMXXhyu
- >>49 これを使えば?
Windows ScriptからWin32APIを呼び出せるようにするライブラリ
http://d.hatena.ne.jp/Asarima/20071107/p1
- 70 :名無し~3.EXE:2007/11/13(火) 22:08:23 ID:+GHf1LY+
- BATとwshで文字列をやりとりすることは出来ますか?
ファイルを介さないと駄目でしょうか?
a.batからb.jsを呼ぶ
b.jsが何か文字列を返す
a.batはその内容を使って何かする
- 71 :名無し~3.EXE:2007/11/13(火) 22:11:00 ID:zcLXXEdm
- batで%1とかつかって引数で渡す。
- 72 :名無し~3.EXE:2007/11/13(火) 23:45:39 ID:Ip41ByhH
- SP+メーカー付属のバッチファイルでそれやってるな。あっちはjsでなくvbsだけど
- 73 :名無し~3.EXE:2007/11/13(火) 23:46:18 ID:Ip41ByhH
- あ、「それ」ってのは>>70のことね
- 74 :名無し~3.EXE:2007/11/14(水) 09:15:44 ID:IFtPrZko
- >>71
引数が使えるのはa→bの場合だ
70はb→cのところで文字列を渡したいんだから引数は使えない
この場合は標準入出力を使うがよろし
- 75 :名無し~3.EXE:2007/11/14(水) 15:44:47 ID:2CCfECGA
- for /f %%1 in ('cscript hoge.vbs') do echo %%1
- 76 :名無し~3.EXE:2007/11/14(水) 16:38:33 ID:bRgypCbJ
- >>74
bat内では"%1"等でコマンドライン引数を取り出せるのでjsからコマンドライン引数で渡す。
js内ではWScript.Argumentsでコマンドライン引数を取り出せるのでbatからコマンドライン引数で渡す。
ということだ。
http://www.atmarkit.co.jp/fwin2k/operation/command005/command02.html
- 77 :名無し~3.EXE:2007/11/14(水) 17:10:40 ID:2CCfECGA
- 脱帽
- 78 :名無し~3.EXE:2007/11/14(水) 18:43:10 ID:bRgypCbJ
- 勘違い ああ勘違い 勘違い
- 79 :70:2007/11/14(水) 21:30:58 ID:KO3uEZWd
- やりたいことができました。
ありがとうございました。
testA.bat
for /f %%1 in ('cscript testB.js') do set folderName=%%1
mkdir %folderName%
testB.js
WScript.Echo("フォルダ01");
- 80 :名無し~3.EXE:2007/11/20(火) 22:12:17 ID:VEKX0U78
- 質問がありますです。
コンピュータABCは同じワークグループ名です。
XPSP2のPC[A]で共有を作った。
無効だったGUESTを有効にした。パスワードを空にした。
SECPOLで空パスワードでネットワークアクセスを受け付けるようにした。
SECPOLでGUESTのネットワークアクセスを拒否していないことを確認した。
共有のアクセス権 Everyone フルコントロール
NTFSアクセス権 Everyone 変更
スクリプトは、FSOでUNC指定している状態。
これで別のXPSP2のPC[B]からは、この共有にアクセス(ファイル作成)できた。
別のWindows2000[C]から、そのPCにアクセスすると、エラーになってしまった。
エラー番号から見ると、ユーザー名またはパスワードのミスマッチと出た。
GUIでその共有にアクセスすると、2000ではユーザー名とパスワードを訊かれた。
このときXPでも2000でも、ローカルのAdministratorでログオンしていた。
ネットワークは同一セグメント。
Windows2000でアクセスできないのは何故でしょうか。
できるようにする方法があるでしょうか。
- 81 :名無し~3.EXE:2007/11/20(火) 22:19:09 ID:VEKX0U78
- 引き続き質問です。
ドライブレターを使用せずにネットワークの共有フォルダを使用したいのですが、
そのときユーザーの資格情報を使うのは実現可能でしょうか?
GUIだとファイル名を指定して実行より普通にできますが、
自分で調べたとことろではスクリプトはドライブレターを使う方法ばかりでした。
- 82 :名無し~3.EXE:2007/11/20(火) 23:13:07 ID:gOjp+K58
- ファイル名を指定して実行できるならrunかexecでできないの?
あんまり詳しくないので誰かフォローよろ
- 83 :名無し~3.EXE:2007/11/21(水) 01:24:51 ID:SPFt+BVD
- なんか質問が漠然としててイマイチ意味がわからん。
質問の仕方が下手なのか、オレの理解を超える高度な質問なのか。
>GUIでその共有にアクセス
これはエクスプローラで、って意味だよな?
Windows2000 からアクセスできないのは、単にWindows2000にユーザとパスワードを登録してないだけ?
もう手元にWindows2000が無いから確かめられんが。
ドライブレターを使わない方法っていうと、
¥¥サーバ名¥共有名¥サブディレクトリ¥ファイル・・・
だろ。そういう事じゃなくって???UNCって言葉を知ってるくらいだから、わかってるやろね。
もしかしてコンソール型のコマンド?だったらドライブレターが無いと動かんのだが。
検証用の短いスクリプトを書いてを掲示板に貼り付けてみろ。
ただ単に「動かない」って言うだけじゃ問題解決せんぞ。
キミの文章は、一見すごく詳しく書いてあるように見えるが、実は具体的な事はぜんぜん何一つ書いてないやん。
あと、コードを貼り付けるときは、空白は に置換してな。じゃないと読む気がしなくなる。
- 84 :名無し~3.EXE:2007/11/21(水) 01:26:26 ID:SPFt+BVD
- あと、コードを貼り付けるときは、空白は に置換してな。じゃないと読む気がしなくなる。
- 85 :名無し~3.EXE:2007/11/21(水) 07:31:10 ID:ostA5nqh
- >80
俺同じことで悩んだことがある。
難しく書いてあるけど、つまり
ワークグループ上のPCで共有つくった。
この共有は、ユーザーが手作業で認証することなく
誰でも書き込みできるようにしたい。
XPだとできるけど、2000だとできない。
XPと2000で確認したときのユーザーは同じユーザー。
でいいか?
だとすると、そのカギはたぶん ForceGuest
XPから付いた機能。2000にはない。
FGが有効だとネットワーク資源にアクセスするときの試行順序が異なる。
2000で失敗するのはおそらく、共有を作ったPCのAdministratorと
2000のユーザー(Administrator)がマッチしたんで共有のAdministrator
のパスワードを求められたと思われる。
>80は薄々それに気付き始めていて、81の質問をしているように見えるな。
81の回答は知らん。
- 86 :名無し~3.EXE:2007/11/22(木) 21:04:54 ID:ZvxWKQzi
- ドライブレターをWSHで変更したいんですが、
知っている方いらっしゃったら教えて頂けませんでしょうか?
- 87 :名無し~3.EXE:2007/11/23(金) 01:01:57 ID:RcwUXjpV
- http://support.microsoft.com/kb/300415/
- 88 :名無し~3.EXE:2007/11/23(金) 12:20:45 ID:5ayYEZBT
- 時代はPowerShell
- 89 :名無し~3.EXE:2007/11/23(金) 15:37:16 ID:pxqIhImv
- 時代とかどうでもいいんだがそのPowershellというやつは便利なのか?
- 90 :名無し~3.EXE:2007/11/23(金) 16:29:21 ID:JzxCLucd
- .NETのライブラリが素で使えるんだからWSHに比べりゃ基礎力が違うな
- 91 :名無し~3.EXE:2007/11/23(金) 16:41:35 ID:LQu5gBnH
- 基礎力が必要だな
- 92 :名無し~3.EXE:2007/11/23(金) 17:20:53 ID:cY5xDcD8
- ttp://www.atmarkit.co.jp/fwin2k/operation/pshvswsh/pshvswsh_01.html
Windowsスクリプティング環境比較:PowerShell vs WSH
―― 伝統のWSH 対 先進のPowerShell、どっちを使う? ――
WSHとPowerShell、どちらを使うべきか?
ここまでの比較を振り返ってみると、現状ではアプリケーションの使い勝手としてはWSHが、
スクリプト言語の機能面ではPowerShellが優位になると考えて差し支えないだろう。
使い分けの決め手となるのは、システムにPowerShellなどを追加インストールできるか否かにかかっているといえるかもしれない。
WSHならばどこででも動作するが、PowerShellはそうではないからだ。
将来性に関していうと、WSHは今後セキュリティ対策やバグフィックスなどのための
マイナー・アップグレードのみにとどまり、メインとなる機能はさほど変化しないと考えられる。
ある意味「枯れた」「安定した」環境である。
筆者としては「こちらがお薦め!」とはいいにくいところがある。
本音をいえば「両方お薦め!」である。ぜひとも、どちらの環境にも触れてみていただきたい。
また、WSHをすでに使われている方は、ぜひ新しいPowerShellも使ってみていただきたいと思う。
- 93 :名無し~3.EXE:2007/11/23(金) 17:38:25 ID:cY5xDcD8
- #フォームを表示するサンプル
[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$form = New-Object System.Windows.Forms.Form
$form.TopMost = $true
$txt = New-Object System.Windows.Forms.TextBox
$txt.Text = "てきすとぼっくす"
$txt.MultiLine = $true
$txt.Dock = "Fill"
$txt.Add_TextChanged({Clear-Host;Write-Host '[' + $txt.Text + ']'})
$form.Controls.add($txt)
$form.ShowDialog()
- 94 :名無し~3.EXE:2007/11/23(金) 20:26:50 ID:3Va0+pWj
- function tail([string]$file, [int]$line=10){
Get-Content $file | Select-Object -Last $line
}
- 95 :名無し~3.EXE:2007/11/23(金) 20:35:07 ID:SA5SFI4k
- Windows PowerShell (正式版リリース)1.0
http://pc11.2ch.net/test/read.cgi/win/1163764836/
- 96 :名無し~3.EXE:2007/11/27(火) 21:24:09 ID:JEXhs+tO
- Execメソッド以降が固まってしまうことがあって困っています。
調べたところ、どうやらコマンドの結果が4096バイトを超えると固まるようです。
(dos窓が開いたままの状態でMsgBox("cmd end")が実行されない)
これを回避する手段はないでしょうか?
コードは以下です。
Set objWshShell=WScript.CreateObject("WScript.Shell")
Set objExec=objWshShell.Exec("C:\cygwin\bin\bash.exe --login -c /home/root/foo.sh")
Do While objExec.Status = 0
WScript.Sleep(1)
Loop
MsgBox("cmd end")
Do While Not objExec.StdOut.AtEndOfStream
strRes=strRes & objExec.StdOut.Read(1)
Loop
MsgBox(strRes)
- 97 :名無し~3.EXE:2007/11/27(火) 22:37:18 ID:w29ICyU7
- 単にSleepが短すぎるとかじゃないよなぁ?
- 98 :名無し~3.EXE:2007/11/27(火) 22:47:10 ID:dWqMnF1n
- コマンド実行中に4096バイト溢れないように読み出したらどうかな。
Set objWshShell=WScript.CreateObject("WScript.Shell")
Set objExec=objWshShell.Exec("C:\cygwin\bin\bash.exe --login -c /home/root/foo.sh")
Do While objExec.Status = 0
WScript.Sleep(1)
If Not objExec.StdOut.AtEndOfStream Then
strRes=strRes & objExec.StdOut.ReadAll
End If
Loop
MsgBox("cmd end")
Do While Not objExec.StdOut.AtEndOfStream
strRes=strRes & objExec.StdOut.Read(1)
Loop
MsgBox(strRes)
もしくはファイルにリダイレクトしてから読み出すとか・・・
- 99 :名無し~3.EXE:2007/11/28(水) 00:34:39 ID:LYipxaXQ
- 添削開始
Set objWshShell=WScript.CreateObject("WScript.Shell")
Set objExec=objWshShell.Exec("C:\cygwin\bin\bash.exe --login -c /home/root/foo.sh")
MsgBox objExec.StdOut.ReadAll
添削終了
- 100 :96:2007/11/28(水) 23:35:18 ID:KdWjqQzh
- >>97-99
レスありがとうございます。
99氏のReadAllで対処することができました。
ところで4096バイトというのはなにか制限があるのでしょうか?
- 101 :名無し~3.EXE:2007/11/29(木) 00:17:53 ID:83NzChea
- pipeのバッファ長
- 102 :96:2007/11/30(金) 00:22:06 ID:Fxl47CyX
- >>101
なるほど。ありがとうございました。
- 103 :名無し~3.EXE:2007/12/02(日) 23:07:19 ID:TEBziwdN
- WindowsXPProの質問です。
ドメインユーザーのSID(S-x-x-x....)
から、ユーザーID(Domain\UserID)を知りたいんだけど、
ActiveDirectoryにどんな方法でアクセスすれば良いですか?
ADSIを使うっぽいのですが、よくわかりません。
- 104 :名無し~3.EXE:2007/12/15(土) 09:24:53 ID:l9oY6uNQ
- @Echo ほしゅ
- 105 :名無し~3.EXE:2007/12/26(水) 16:48:54 ID:ihpdP5iv
- vbscriptで下のように FTP を実行するものを作りました。
------------スクリプトファイル----------
Set objExec = objWshShell.Exec("ftp -s:ftptest.txt")
Do Until objExec.StdOut.AtEndOfStream
strLine = objExec.StdOut.ReadLine
Wscript.Echo strLine
Loop
FTPの実行結果を取り出したく、標準出力を出しているのですが、
FTPサーバのレスポンスコード (226 BINARY Transfer complete. のような)をとることができません。
FTPのスクリプトファイルに記述したコマンド文字列(get 〜〜〜 など)は出力されます。
なにかレスポンスコードを取り出す方法はありませんでしょうか。
- 106 :名無し~3.EXE:2007/12/26(水) 17:42:45 ID:nPiR3OSS
- ありますよ
- 107 :名無し~3.EXE:2007/12/30(日) 01:50:18 ID:yeQ7yJdx
- >>105
それって普通に実行して>でリダイレクトした場合は取れるのか?
会話的な出力は無理なんじゃ?
- 108 :名無し~3.EXE:2007/12/30(日) 03:21:32 ID:cJTE6jYq
- 2>
- 109 :名無し~3.EXE:2007/12/30(日) 17:30:58 ID:CtFMOrJV
- システムのプロパティで 「このコンピュータのプライマリDNSサフィックス」
をスクリプト(VBScript)で設定したいのですがレジストリを書き換えるしかないでしょうか?(Windows2000:WSH5.1)
レジストリ変更した場合本当にシステムのプロパティの
「DNSサフィックスと NetBIOSコンピュータ名」
から変更した場合と同じ効果が得られますかね。
'このコンピュータのプライマリDNSサフィックスに追加
SET WSHShell = CreateObject("WScript.Shell")
WSHShell.RegWrite "HKLM\System\CurrentControlSet\Services\TCPIP\Parameters\Domain" , "example.local", "REG_SZ"
SET WSHShell = CreateObject("WScript.Shell")
WSHShell.RegWrite "HKLM\System\CurrentControlSet\Services\TCPIP\Parameters\NV Domain" , "example.local", "REG_SZ"
'ドメインのメンバシップが変更されるときにプライマリDNSサフィックスを変更するか
SET WSHShell = CreateObject("WScript.Shell")
WSHShell.RegWrite "HKLM\System\CurrentControlSet\Services\TCPIP\Parameters\SyncDomainWithMembership" , "0", "REG_DWORD"
- 110 :名無し~3.EXE:2007/12/31(月) 02:02:49 ID:lbRF296b
- WMIなんだけど
VistaだとCPUコアごと(デュアルコアCPU使用の場合)にCPU使用率取れないの?
会社のサーバ機(Win2003)だと普通に取れるのに。
- 111 :名無し~3.EXE:2008/01/15(火) 20:13:54 ID:NkT4qLhS
- へ
- 112 :名無し~3.EXE:2008/01/21(月) 00:22:04 ID:wT0Wq3sL
- >>110
VistaからWin32_Processorが変わったらしいぞ
- 113 :名無し~3.EXE:2008/01/29(火) 15:37:22 ID:QlYaExwt
- ファイルに連番を振って、連番状態をtxtファイルに保存するスクリプトをくんだんだけど、
引数多いとエラーになるからファイラの10ファイルずつ何度かに別けて実行するようにしたら、
前のスクリプトがtxtに書き込む前に次のスクリプトが実行されてしまって
重複する連番が発生しまう問題が出てきた。
これをなんとか回避する方法ってない?
- 114 :名無し~3.EXE:2008/01/29(火) 16:39:09 ID:HWw+z0EO
- http://pc11.2ch.net/test/read.cgi/tech/1197881068/158
- 115 :名無し~3.EXE:2008/01/29(火) 18:01:12 ID:Bx0GxAeQ
- ロックシリアライズ
- 116 :名無し~3.EXE:2008/01/29(火) 18:05:33 ID:ioJc4Ok0
- >>113
方法1 ファイラからわけて実行するときは、同期して順番に実行させる
方法2 txtファイルはセッションごとにユニークなものを用いる
- 117 :名無し~3.EXE:2008/01/29(火) 18:23:51 ID:i99yh1lQ
- vistaの検索にもインデックスサービスのような
スクリプトから扱えるインターフェイスはありますか?
あれば教えてください。
- 118 :名無し~3.EXE:2008/01/29(火) 21:44:23 ID:QlYaExwt
- >>116
方法1はやり方が判らん。
方法2は統一連番なので連番用のtxtファイルは一つにしたい。
- 119 :名無し~3.EXE:2008/01/30(水) 00:13:52 ID:hK8k2kJv
- >>113
引数を減らすわけにはいかんの?フォルダを渡してその中全部のファイルに連番ふるとか。
- 120 :名無し~3.EXE:2008/01/30(水) 01:01:03 ID:mcJ6fxxT
- >>115
- 121 :名無し~3.EXE:2008/01/30(水) 19:58:35 ID:4UJpZWZC
- WSHからIEを触っていますが、
<SCRIPT src="a.js" type=text/javascript></SCRIPT>
このa.jsの中身をどうしたらいじれるか悩んでいます。
IE.document.scripts.item(x).src にa.jsが入っているところまではわかりました。
しかし 〜.outerHTMLは「<SCRIPT src="a.js" type=text/javascript></SCRIPT>」
〜.innerHTMLは「」(中身なし) と中身がどこにあるのかわかりません。
最終的にはこのa.jsの中にあるconfirmを取り除くことが目標です。
ボタンの形をした画像のonclickでこのconfirmが呼ばれるため、
buttonimg.click()で処理が中断されてしまいます。(制御が戻ってこない)
どなたかお知恵をお貸し下さい。
- 122 :名無し~3.EXE:2008/01/30(水) 20:03:21 ID:I8vGwQ/o
- confirm = "うんこ"
でいいじゃん。
- 123 :名無し~3.EXE:2008/01/31(木) 11:52:44 ID:zJJrJ/qA
- 最初意味がわかりませんでしたが、最終的に
div = IE.document.createElement("div")
div.innerHTML = " <script defer='defer'>window.confirm = function() {return true;}</script>"
IE..document.body.appendChild(div)
で解決できました。
ありがとうございます。
ところで、上記のやり方ではなく、
IEオブジェクトから直接confirmを上書きする方法はあるのでしょうか?
IE.document.window.confirm = "function() {return true;}"
だとオブジェクトがないみたいだし、右辺もあやしい?
- 124 :名無し~3.EXE:2008/01/31(木) 17:29:05 ID:gHRDlEQ4
- >>121
スクリプトの中身はtextプロパティ
>>123
ParentWindow使え
あと右辺はもちろん関数
- 125 :名無し~3.EXE:2008/02/24(日) 23:45:43 ID:h5tbuJf2
- あるアプリケーションへ,
{TAB}
{TAB}
{ENTER}
alt+W
P
という5つのキーを20回連続して入力したいのです。
かつ,5つのキーの間にそれぞれ1秒程度のwaitを入れたいのです。
で,以下のように記述したのですが,エラーが出ます。
どこをどう治せばいいのか教えてください。
var WShell = WScript.CreateObject("WScript.Shell");
For i=1 to 20 Step 1
WShell.Sendkeys("{TAB}{TAB}{ENTER}%WP");
Next
スクリプト: ****
行: 5
文字: 5
エラー: ';' がありません。
コード: 800A03EC
ソース: Microsoft JScript コンパイル エラー
- 126 :名無し~3.EXE:2008/02/24(日) 23:59:31 ID:sysKnAbW
- JScript
for ステートメント
次のコードは、for ループの使用例です。
/* 初めに i は 0 に設定され、繰り返し処理の最後に 1 ずつインクリメントされます。
ループは、繰り返し処理の前に i が 10 かまたはそれ以上になったときに終了します。*/
var myarray = new Array();
for (i = 0; i < 10; i++) {
myarray[i] = i;
}
- 127 :名無し~3.EXE:2008/02/25(月) 00:06:21 ID:4AkMnxLm
- さすがに言語の区別が付かん奴ってのは珍しいな
- 128 :名無し~3.EXE:2008/02/25(月) 00:32:29 ID:u4dXLMq0
- JVB折衷か〜
爆笑じゃ〜
- 129 :名無し~3.EXE:2008/02/25(月) 17:51:14 ID:36gDupYt
- こりゃひどい。前代未聞。ここまでひどいのは初めて見た。
- 130 :名無し~3.EXE:2008/02/25(月) 18:07:39 ID:4AEiq/3J
- 自演乙
- 131 :名無し~3.EXE:2008/02/25(月) 20:47:32 ID:1tRpIHdF
- >>125です。
下記を見て,記述してみたのですが,爆笑・前代未聞レベルでしたか・・・
あきらめます。ありがとうございました。
Windows Scripting Host 2.0 キーを他のアプリに送る
http://homepage3.nifty.com/aya_js/wsh/wsh205.htm
- 132 :名無し~3.EXE:2008/02/25(月) 21:42:24 ID:kuHyV/Zj
- >>131
一度、スクリプトの拡張子を.vbsに変えて実行してみたらどうだろう。
爆笑させてもらったお礼だ。
- 133 :名無し~3.EXE:2008/02/25(月) 21:47:14 ID:gUIMLeH3
- あきらめなくても、素人らしく20回コピペしたらいいだろ。
バグがあろうが、セキュリティ上の穴があろうが、羅列で見苦しかろうが
「自分だけがわかって使う」なら「最強だ」という考えもありかと@業務で使わないのなら
まぁ、自分で作っても記憶は忘却する一方だから、コメントぐらいは入れとけよ。
- 134 :名無し~3.EXE:2008/02/26(火) 01:28:07 ID:2F5HbqQP
- WSFにすればいいよ
<job>
<script language=jscript>
var WShell = WScript.CreateObject("WScript.Shell");
</script>
<script language=vbscript>
For i=1 to 20 Step 1
WShell.Sendkeys("{TAB}{TAB}{ENTER}%WP");
Next
</script>
</job>
- 135 :名無し~3.EXE:2008/02/26(火) 02:12:37 ID:6OUqc6/u
- >>131
> var WShell = WScript.CreateObject("WScript.Shell"); JScriptの構文
> For i=1 to 20 Step 1 VBScript
> WShell.Sendkeys("{TAB}{TAB}{ENTER}%WP"); JScript
> Next VBScript
- 136 :名無し~3.EXE:2008/02/26(火) 12:21:55 ID:rD2tWwy5
- 未練がましいなぁ・・・
本人がもういいって言ってるんだからあきらめたら?
- 137 :名無し~3.EXE:2008/02/26(火) 12:32:27 ID:Tapss4Ha
- >>125
var WShell = WScript.CreateObject("WScript.Shell");
var title = "無題 - メモ帳"
function sendkeysleep (app,key,wait)
{
WShell.AppActivate(app);
WShell.Sendkeys(key);
WScript.Sleep(wait);
}
for (i=0; i<20 ; i++){
sendkeysleep(title,"{TAB}",1000);
sendkeysleep(title,"{TAB}",1000);
sendkeysleep(title,"{ENTER}",1000);
sendkeysleep(title,"%W",1000);
sendkeysleep(title,"P",1000);
}
- 138 :名無し~3.EXE:2008/02/28(木) 22:28:08 ID:yEaqSwG0
- My Documentsのターゲットフォルダの場所を
ログオフせずに変更することはできませんか?
レジストリのどこを修正するかはわかっていますが
ログオフするまで有効になりませんでした。
SendKeyを使うしか方法はないでしょうか?
- 139 :名無し~3.EXE:2008/03/02(日) 18:43:06 ID:6e1kCfg7
- >>138
shutdown -l
- 140 :名無し~3.EXE:2008/03/05(水) 22:31:46 ID:kBstZgxh
- taskkill /im explorer.exe
- 141 :名無し~3.EXE:2008/03/25(火) 16:38:20 ID:9kazgLaF
- すみません。初心者です。(オブジェクト指向もあやふやです。)
例えばファイルのコピーをしたいとき
fs.CopyFile "aaa.txt", "bbb.txt"
を使うために、前もって
Set fs = WScript.CreateObject("Scripting.FileSystemObject")
を宣言(かな?)しておかなくてはならないんですよね?
それでmin メソッドの、
Math.min([number1[, number2[. . . [,numberN]]]])
を使いたいんですが、何を宣言するのかもわからないのです。
ヘルプやwebをいろいろ見て回ったのですがどうしてもわかりません。
どなたか、min メソッドを使用した最小限のプログラムの例を
教えていただけませんか。お願いします。
(もちろん、minメソッドなんか使わずに最小値を取り出すプログラムを
書いてもいいのですが、後学のためにもよろしくお願いします。)
- 142 :名無し~3.EXE:2008/03/25(火) 17:00:14 ID:1IL1Ctz1
- 宣言せずに使えるが?
- 143 :141:2008/03/25(火) 21:44:36 ID:qBx7ORss
- 例えばaaa.vbsなるテキストファイルを
Dim J
J=Math.min(1,2,3)
MsgBox J
と作って、このaaa.vbsをダブルクリックすると
行:2
文字:1
エラー:オブジェクトがありません。:’Math’
コード:800A01A8
ソース:Microsoft VBScript 実行時エラー
とエラーが出るのです。何が足りないのでしょうか。
かなり、アホな質問だとは思いますがどうかお願いします。
- 144 :名無し~3.EXE:2008/03/25(火) 21:51:41 ID:hNdtb4Xa
- 予想外の展開w
- 145 :名無し~3.EXE:2008/03/25(火) 22:06:03 ID:8WiypEE9
- MathってJScript組み込みオブジェクトじゃないか?
- 146 :名無し~3.EXE:2008/03/25(火) 22:07:52 ID:ixyG0PvK
- Mathって.NET Frameworkのオブジェクト(クラス)だろ
WSHで使えるのはCOM(ActiveX)オブジェクトだけ
まあCOMを通してWin32APIとか.NET Frameworkとかを使うことも出来るけど
元からそれらに対応している言語を使う方がいいだろ
- 147 :141:2008/03/25(火) 22:27:53 ID:qBx7ORss
- ガーーーーーーーーーーーーーーーーーーーーン!!
お騒がせしてすみませんでした。あのヘルプはWSHだけのヘルプじゃないのね。
トホホ(;_;)
- 148 :名無し~3.EXE:2008/03/25(火) 22:38:43 ID:/YWxmjp7
- VBS+VistaでGetFolder メソッド使ってプロファイルフォルダのSize取得しようとすると
エラー: 書き込みできません。
コード: 800A0046
ソース: Microsoft JScript 実行時エラー
で落ちる。2000やXPだと落ちないんだけど、これVista特有の現象ですか?
Vistaでも普通のフォルダはSize取れるんですけど。
- 149 :名無し~3.EXE:2008/03/26(水) 00:14:49 ID:t+afEoKa
- >>147
> あのヘルプはWSHだけのヘルプじゃないのね。
いや、WSHだけのヘルプ。言っとくけど、WSHは言語の名前じゃないからね。
で、MathはJScriptのオブジェクトだから、VBScriptでは使えない。
- 150 :名無し~3.EXE:2008/03/26(水) 01:24:26 ID:KNcsBXpS
- 使えるだろ?
- 151 :名無し~3.EXE:2008/03/26(水) 01:54:14 ID:KNcsBXpS
- <job>
<script language=javascript>
</script>
<script language=vbscript>
msgbox Math.max(1,2)
</script>
</job>
- 152 :名無し~3.EXE:2008/03/26(水) 04:57:05 ID:7LNLMS+G
- >>151
それはVBScriptでJScriptのオブジェクトと使ってるのとは違うだろ。
- 153 :名無し~3.EXE:2008/03/26(水) 13:24:45 ID:KNcsBXpS
- <job>
<script language=JScript>
</script>
<script language=VBScript>
msgbox Math.max(1,2)
</script>
</job>
- 154 :名無し~3.EXE:2008/03/26(水) 15:51:20 ID:7LNLMS+G
- いやそういう意味ではなくて…
それはWSFでVBScriptとJScriptを使っているだけであってVBSじゃないだろって話。
- 155 :名無し~3.EXE:2008/03/26(水) 17:03:49 ID:KNcsBXpS
- <job>
<script language=JScript>
</script>
<script language=VBS>
msgbox Math.max(1,2)
</script>
</job>
- 156 :名無し~3.EXE:2008/03/26(水) 18:06:43 ID:POgtdwah
- 目的ありきなのか手段ありきなのかってことだよな。
- 157 :名無し~3.EXE:2008/03/26(水) 18:52:46 ID:KNcsBXpS
- set sc=createobject("scriptcontrol")
sc.language="jscript"
msgbox sc.CodeObject.Math.max(1,2)
- 158 :名無し~3.EXE:2008/03/26(水) 21:11:00 ID:TWV1SvVz
- 解ってないなぁ
- 159 :名無し~3.EXE:2008/03/26(水) 23:08:35 ID:uMAj67np
- んじゃきっちり分かるように説明しる
- 160 :名無し~3.EXE:2008/03/27(木) 12:00:42 ID:2KaXxIPc
- HOGE.VBS
WScript.Echo (Math.max(1,2))
- 161 :名無し~3.EXE:2008/03/27(木) 23:04:46 ID:ycxHXFId
- >>157なら完全に使えてるな
- 162 :名無し~3.EXE:2008/03/27(木) 23:09:38 ID:2KaXxIPc
- >>160 の実行結果も
---------------------------
Windows Script Host
---------------------------
2
---------------------------
OK
---------------------------
なんだけど?
HOGE.VBS //e:jscript
- 163 :名無し~3.EXE:2008/03/28(金) 17:53:53 ID:2JmwkR4J
- 解ってるなぁ
- 164 :名無し~3.EXE:2008/03/28(金) 21:54:09 ID:2RJ4tWHs
- そうでもないか
- 165 :名無し~3.EXE:2008/03/29(土) 02:07:35 ID:cjLqnGDe
- なにか悔しいことでもあったの?
- 166 :名無し~3.EXE:2008/03/31(月) 02:14:48 ID:RCtIg5di
- 質問です。
wshでドライバの有効無効を切り替えられますか?
可能ならばコード例をいただければと
- 167 :名無し~3.EXE:2008/03/31(月) 07:49:26 ID:J1B1LuSu
- >>166
WSHでは出来ません
COM使えば出来ないこともないので
どうしてもやりたければWSHではなくCOMについて調べましょう
- 168 :名無し~3.EXE:2008/03/31(月) 17:56:54 ID:Ra0SLpc1
- >WSHでは出来ません
SendKeys使えば出来ないこともないので
どうしてもやりたければWScript.ShellのSendKeysについて調べましょう
- 169 :kuchigakusaiossan:2008/04/05(土) 15:47:53 ID:pZPHR3rd
- マルチポストですぅぅ
悩みすぎて口がくさいですぅぅ
H友達の同僚のサキちゃんにもきらわれそうですぅぅ
ヨロピク
891 名前: kuchigakusaiossan 投稿日: 2008/04/04(金) 11:47:41
すいません、スレ異かな。WSHの言葉だけで来ました。
悩んでます。だれか教えぇぇぇぇ〜〜て
EXCEL2003 VBAで
http://www.happy2-island.com/vbs/cafe02/capter00711.shtml あたりに
WScript.Sleep 5000 っていうのがさりげにつかってありますが
オブジェクトが必要です というエラーが出ますうううぅぅぅぅぅ
私はどうすればいいのでしょうか。
悩みと疲労で歯槽膿漏がますますひどくなりますうううぅぅぅ
ぐぐると以下の同じような人もいます。だれか愛の手を
win32のsleepじゃなくって、Wscript.echo もつかいたいし
>Excel VBA質問スレ Part5
878 :デフォルトの名無しさん:2008/03/02(日) 23:54:52
物凄く基本的な事で申し訳ないのですが・・・、処理待ちでスリープを掛けたく、
WScript.sleep (250)
と記述していますが、エラー424 オブジェクトが必要です というエラーが出るのです。
何か参照設定が足りないんでしょうか。。
879 :デフォルトの名無しさん:2008/03/02(日) 23:56:42
ググれよ・・・
880 :デフォルトの名無しさん:2008/03/03(月) 00:01:10
>>878
WScript.exeを参照設定しろー
895 名前: デフォルトの名無しさん [sage] 投稿日: 2008/04/04(金) 19:36:53
実際問題としてVBAならDeclareが一番楽だと思うんだ
896 名前: デフォルトの名無しさん [sage] 投稿日: 2008/04/04(金) 21:11:06
Application.Waitのほうが簡単
- 170 :名無し~3.EXE:2008/04/05(土) 16:25:23 ID:Zt+/0iY1
- VBAからWScript.Echoってどんな使い道があるの?
- 171 :名無し~3.EXE:2008/04/05(土) 17:29:10 ID:opCsAdvJ
- 正解は
Shell "WScript.exe ..."
だな
- 172 :名無し~3.EXE:2008/04/06(日) 05:20:20 ID:nlrXvzZ0
- >>170
MsgBoxのほうが簡単
- 173 :kuchigakusaiossan:2008/04/06(日) 13:07:46 ID:Ax1XoNQY
- >>170
Debug.Print と同じ用途と考えたけど
echo ではログ的に出力できそうじゃないみたいな
- 174 :kuchigakusaiossan:2008/04/06(日) 13:51:08 ID:Ax1XoNQY
- >>169
お騒がせしてます。一応自己解決しました。
サキちゃんもよろこんでますぅ。
誤った解釈は、http://www.happy2-island.com/vbs/cafe02/capter00711.shtml はVBAじゃなくWSHのスクリプトそのもらしい。
VBAではWscriptのスクリプトは実行できないが、オブジェクトは動作できる(みたい)
Wscript.sleep × sleep はオブジェクトではない
Wscript.run ○ runはWscriptのオブジェクト
質問は wscript.run("sleep 3") とか wscript.run("echo test") にすれば動きますがrunコマンド相当になり意味ナイスネ
Sub VBA_WScrit_test()
Dim WSH
Set WSH = CreateObject("WScript.shell") ’wscript のshellを指定
WSH.Run ("sleep 3")
WSH.Run ("echo test")
End Sub
- 175 :名無し~3.EXE:2008/04/06(日) 13:59:10 ID:AOV8Fp3G
- 先生、どこから突っ込んでいいのか分かりません!
- 176 :名無し~3.EXE:2008/04/06(日) 18:02:36 ID:sJp4hCiu
- 175よ、お前のスルー力が試されておる。
- 177 :名無し~3.EXE:2008/04/06(日) 20:25:55 ID:PLT0SKwU
- やむを得ず、sendkeys主体のvbsを使うことに
なったんだけど、sendkeys中にユーザー操作を
無効化しておくような方法ってないかな?
やっぱムリ?
- 178 :名無し~3.EXE:2008/04/08(火) 14:03:59 ID:+YeUwmcX
- WSHとは関係無いけどUWSCにそんな関数あったな。
- 179 :名無し~3.EXE:2008/04/16(水) 19:21:44 ID:3BqZSYGn
- ho
- 180 :名無し~3.EXE:2008/05/12(月) 15:02:59 ID:idT6RCfS
- Xp質問スレから誘導されてきました。
下記の動作を自動化したいと考えています。
具体的な実現方法をご教授ください。
1.ディレクトリA内にある全フォルダ及び全ファイルをディレクトリBに移動する。
(ディレクトリA内にフォルダ及びファイルが存在しない場合はこのスクリプトを停止)
2.ディレクトリBに移動したファイルをデータベースに取り込む。
3.ディレクトリAディレクトリBからディレクトリC内の実行年フォルダ内の実行月フォルダ内の実行日フォルダに移動する。
(フォルダが無い場合は作成)
という処理を毎日8時半、12時、18時に行います。
※2番に関してはデータベース側のスクリプトになりますので、実現したいのは1番と3番です。
よろしくお願い致します。
- 181 :名無し~3.EXE:2008/05/12(月) 18:37:47 ID:yJOtbab4
- 1.で全部AからBに移動したのに、3.でAになんか残ってるの?
- 182 :名無し~3.EXE:2008/05/12(月) 20:25:39 ID:uCZ4KO0T
- >>180
ファイル・フォルダの移動や作成はFileSystemObject使えば良い
年月日の取得はDateからYear関数などで取得すれば良い
ここはスクリプト作成依頼所ではないので、あとは自分で調べて書こう
- 183 :名無し~3.EXE:2008/05/16(金) 09:23:35 ID:zqGee6pu
- >>182
情報ありがとうございます。
試してみます!
- 184 :名無し~3.EXE:2008/05/26(月) 13:02:19 ID:ZJjr1srY
- makewin.exeでexe化したvbsのexeファイルが
savce@5/26定義パターンで木馬として片端から検出・検疫されたわ
ふざけんなSAV!!!!!!!!!!ヽ(`Д´)ノ
- 185 :名無し~3.EXE:2008/05/27(火) 23:28:44 ID:5IR62930
- >>184
ウチも!
自作アプリのインストーラを、いつも wsh で作成して exe 化して配布してたんだが
いきなりオレのソフトは全部ウイルスに認定されてしまったよ!
かといって、マイクロソフトの Visual Studio に付いてるクソなインストーラ作成ソフトは使いたくないし
InnnoSetup なんて、まるでキンタマみたいな恥ずかしい名前のソフトも抵抗あるし。
どうしよう・・・orz
- 186 :名無し~3.EXE:2008/05/28(水) 18:02:22 ID:U+POFhbu
- そこで、MAOIXですよ。
- 187 :名無し~3.EXE:2008/05/28(水) 20:45:49 ID:ijLb+QnG
- カッコ付けてexe化なんてしなければいいじゃんw
- 188 :名無し~3.EXE:2008/05/28(水) 22:05:22 ID:lcT2TWdz
- exeにするならvb.netだな
- 189 :名無し~3.EXE:2008/05/29(木) 00:42:34 ID:swFNcekc
- >>185
ところでWSHの.exe化ってのは、WSHやOSのバージョン毎の差を吸収できるもんなの?
できないのならWSHのまま配布するほうが良いと思うんだが。
- 190 :名無し~3.EXE:2008/05/29(木) 18:18:57 ID:DTlmIJ8o
- >>189
exe化の原理は簡単。単純に、ローダとvbsスクリプトを COPY コマンドで物理的に結合してるだけ。
COPY /B ローダ.exe+SETUP.VBS SETUP.EXE
ローダが実行時にスクリプト部分をファイルに書き出して、子プロセス wscript.exe で実行させる。
OSのバージョンに依存するような事は絶対に無い。
- 191 :名無し~3.EXE:2008/05/30(金) 10:51:12 ID:PIzZnjDJ
- ttp://www.microsoft.com/japan/technet/scriptcenter/resources/scriptshop/shop0305a.mspx
をまんま使って、ワークグループ環境下で、リモートのOSのバージョン等を採取する
スクリプトを作成しています。
Set objWMIService = GetObject("winmgmts://" & "remotehost")
Set colOSes = objWMIService.ExecQuery _
("SELECT * FROM Win32_OperatingSystem")
For Each objOS in colOSes
Wscript.Echo "OS Version: " & objOS.Version
Wscript.Echo "Service Pack: " & objOS.ServicePackMajorVersion & _
"." & objOS.ServicePackMinorVersion
Next
Windows Server 2003に対しては、普通に動作するのですが、
Windows XP SP2のPCに関しては
Microsoft VBScript runtime error: The remote server machine does not exist or is unavailable: 'GetObject'
で、拒否られてしまいます。
Google先生経由で色々調べて、XP側のファイアーウォールをOffにしたり、
wmimgmt.mscで、root\cimv2のパーミッションをいじったりしてみたり、
getObjectの引数をいじってみたり、色々やったのですが、ですが、状況は
変わりません。 orz
すごく基本的な点を見落としているような気がするのですが、どなたか、
アドバイスいただけませんか?
- 192 :名無し~3.EXE:2008/06/02(月) 08:02:20 ID:xPO8zd5Z
- 前に、「ネットワーク接続の有効・無効をするスクリプト」を見たことがあって、
仕事で使いたいと思ってるんだけれど、あの手段は「コントロールパネル」を開いたりを自動化してるっぽくて
オレの会社だとコンパネが開けないようになってるから使えなかったんだわさ。
マイネットワークを右クリックしてプロパティとかでネットワーク接続の画面は普通に出せるんだけど、
コンパネは開けない仕様になってて。
そういう場合はどうすればいいと思う?レジストリは権限ないし・・・
- 193 :名無し~3.EXE:2008/06/02(月) 08:18:12 ID:GIIWqOyj
- ローカルエリア接続・無線LANをコマンドラインから有効/無効にする方法
ttp://tech.ironhearts.com/blog/archives/74
- 194 :名無し~3.EXE:2008/06/02(月) 18:50:53 ID:uGSz20SA
- WSHを自由に使わせてるくせに、コンパネやレジストリへのアクセス権限無しとかgdgdだな
セキュリティーの概念を解ってないヘボ会社にはありがちだけどw
- 195 :名無し~3.EXE:2008/06/04(水) 10:19:34 ID:DZ08xA0B
- >>191の自己フォローです。
結局、
コンパネ→管理ツール→ローカルセキュリティポリシー
→セキュリティオプション
ネットワークアクセス:ローカルアカウントの共有とセキュリティモデル
をクラシックに変更
で、解決いたしました。参考サイトは、以下の通りです。
ttp://dendoubako.cocolog-nifty.com/blog/2006/09/post_f08b.html
お騒がせいたしました。
(なんだかんだで、三日間もハマッテしまった。orz)
- 196 :名無し~3.EXE:2008/06/13(金) 16:15:06 ID:uYaVuoGG
- 4行目でエラーとなるんですが どこか間違っていますでしょうか?
---
Dim f
Set oMsg = CreateObject("CDO.Message")
Set objFs = CreateObject("Scripting.FileSystemObject")
Set objText = objFs.OpenTextFile(WScript.Arguments(0))
myText = objText.ReadAll
objText.Close
oMsg.From = "送信アドレス"
oMsg.To = "宛先アドレス"
oMsg.Subject = WScript.Arguments(0)
oMsg.TextBody = "件名" & vbCrLf & myText
' 添付したい場合使用
'oMsg.AddAttachment WScript.Arguments(0)
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"メールサーバアドレス"
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
oMsg.Configuration.Fields.Update
oMsg.Send
- 197 :名無し~3.EXE:2008/06/14(土) 05:59:54 ID:J9SnL1u9
- >>196
引数がたりないんでは?
Set objText = objFs.OpenTextFile(WScript.Arguments(0),1,False)
としたらどうだろう?
- 198 :名無し~3.EXE:2008/06/15(日) 01:00:26 ID:blTLCOLk
- >>196
エラーの内容が分からんとな。
- 199 :名無し~3.EXE:2008/06/15(日) 14:34:01 ID:loKPXSjn
- スクリプト単体で引数入れずに起動してるとかいうのは無いだろな。
- 200 :197:2008/06/15(日) 19:32:28 ID:jcYRz71J
- >>199
たぶんそれだ。やってみたらわかった。
それか可能性としては、
WScriptの使えない場所(なんかのマクロとかで)で使おうとしているのかもしれない。
しかし、面白いな。"CDO.Message"か。
受信は、"MAPI.Session"らしい。
昔、BASP21でやったことあるけど、当時はこんなのしらなかった。
- 201 :名無し~3.EXE:2008/06/16(月) 11:10:05 ID:oNTE9LVr
- ありがとうございます >>197
ただそうすると
oMsg.TextBody = "件名" & vbCrLf & myText
がSubjectに挿入されず,添付ファイル名が挿入してしまいます。
前起動したときはそうならなかったのですけど。
何度もお手数おかけします。
- 202 :名無し~3.EXE:2008/06/16(月) 14:40:47 ID:vFGvsFla
- 自分でデバッグ出来ない奴はスクリプト書くなよ
これは交通法規も知らない(免許のない)奴は車で公道を走るなってのと同じだ
エンジン掛けてギヤ入れてアクセル踏んでハンドル切れば車は動くが
それだけでは公道で車を運転する資格にはならない
スクリプトもとりあえず書くだけなら小学生でも出来るし、そのままで動くこともあるが
問題が起きたときにデバッグ出来ない奴は、スクリプト書けるとは言えないし書く資格もない
車の運転でも、公道を走る前にまず交通法規や運転技術を身に付けるように
スクリプトでも実用コード書く前に、まず構文規則とデバッグを身に付けなきゃならない
と、最近のあまりにも無気力な丸投げ質問に渇を入れてみました
- 203 :名無し~3.EXE:2008/06/16(月) 14:52:48 ID:ykhvW0pF
- 突っ込み所が満載な例えを出さないの。
- 204 :名無し~3.EXE:2008/06/16(月) 15:31:18 ID:SHT72aOI
- そうでもないか。
- 205 :名無し~3.EXE:2008/06/16(月) 18:09:59 ID:BCDUeaPm
- とりあえず何でもいいから書かないと身に付かないよ。
デバッグ出来ない奴は書くななんて言っちゃったらずーっとそのまんま。
最大限自分でなんとかするって心構えは必要だと思うけど。
最終的に他人に聞いて解決するにしても、それ以前の試行錯誤がないと
経験値にならないし、伸びる見込みもない。そういう奴は書いても無駄。
- 206 :名無し~3.EXE:2008/06/16(月) 22:00:00 ID:uMi9mtpF
- 書くだけじゃなにも身に付かんよ
君も言ってるが、「それ以前の試行錯誤」ってのがデバッグなわけで
そうやって、書いた上で「考えないと」身に付かん
例えば
Set objText = objFs.OpenTextFile(WScript.Arguments(0))
なら
WScript.Arguments.Count で、1つ以上の引数が渡されてるか
objFs.FileExists で、その引数をパスとするファイルが存在するか
そういうのを確認してからOpenTextFileする、そういう試行錯誤(デバッグ)が必要なわけよ
その後のReadAllも、ファイルが空だとエラーになるから、AtEndOfStreamで確認する
そうやってただ書くだけではなく、面倒がらずに処理を一つ一つ追っていけば
どの行ではなくどの処理がエラーになってるか解るし、そこまで解れば
質問するまでもなく解決する話かも知れない
そういった最低限のデバッグには、手間は要るがたいした知識は要らない
>>196のコードが書けるなら、WScript.Arguments.Countや
objFs.FileExistsに行き着くのはそう難しいことではないはず
なのにエラーが出たらそこで思考停止して他人に丸投げし
自分で試行錯誤する気が全くない、そういうところがダメなわけで
- 207 :名無し~3.EXE:2008/06/17(火) 06:41:32 ID:vvTweahD
- >>196のコードが書けるなら
それ、どっかのホームページからのコピペでしょ。
こんだけのコードが書けるヤツがデバッグすらできないはずは無い。
デバッグって言っても、ただ print 文や echo 文を入れまくるだけなのにね。
まるごとコピーしただけで理屈が分かってないから
何を print させればいいのかがわからない。だからデバッグできない。
- 208 :名無し~3.EXE:2008/06/17(火) 10:48:55 ID:563mmLYl
- ところで、4行目というのは
Set objText = objFs.OpenTextFile(WScript.Arguments(0))
のことで良いのかな。
もしそうなら、ファイルをドロップして引数に与える分にはエラーになる箇所じゃない罠。
ただ、メールの件名(WScript.Arguments(0))にファイルのフルパスを与えるとは考えにくいから、
コマンドラインから手入力でファイル名だけ引数に与えているのだとすると、
その場合、カレントディレクトリを変更していない為のエラーはありえるかも。
- 209 :名無し~3.EXE:2008/06/19(木) 21:14:00 ID:PbO/hOTC
- >>196
下のスクリプトは動いたので、問題はないように見えますが・・?
'Dim f
'Set oMsg = CreateObject("CDO.Message")
Set objFs = CreateObject("Scripting.FileSystemObject")
Set objText = objFs.OpenTextFile(WScript.Arguments(0))
myText = objText.ReadAll
objText.Close
WScript.echo myText
Set objFs = Nothing
Set objText = Nothing
ドラッグしたファイルはtest.txtで中身は
あいうえお。
かきくけこ。
あいうえお。
かきくけこ。 と表示されました。
上の皆様がおっしゃっている内容を確かめてみるとよいかと。
なんの助けにもなってませんねー
- 210 :名無し~3.EXE:2008/06/19(木) 21:25:25 ID:PbO/hOTC
- 209です。
おれも皆様の力を借りたいことがあります。
Vistaでインストールされた更新プログラムのリストを表示させるスクリプトを作ろうと思ったのですが、よい方法はないでしょうか?
難しいのはアプリケーションのリストではなく、MicroSoftからの更新プログラム(KB〜みたいな)であるという点です。
XPではレジストリの以下の場所から一覧を取得するだけなので楽だったのですが、
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\
VistaではUninstallのキーはあってもその中に更新プログラムのキーがない。
同じ方法では取得できません。
レジストリがダメならWMI?WindowsInstallerオブジェクト?
よい方法を知りませんか?
- 211 :名無し~3.EXE:2008/06/20(金) 15:40:25 ID:GKZ2+8+R
- >>210
ttp://www.microsoft.com/japan/technet/scriptcenter/scripts/srvpacks/spvb01.mspx
この辺は?
- 212 :名無し~3.EXE:2008/06/21(土) 10:49:13 ID:m1Ys5slR
- ありがとうございます。 >>211
上のURLを参考に、Vistaのhotfixを取得することができました。
・・でも少し抜けてるんですよね。ServicePack(KB936330)とか。
URLのコードにあった、Win32_QuickFixEngineeringを参考に調べていたら
ttp://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/sept05/hey0930.mspx
でなんかいけるかもなのでがんばってみます。
ありがとうございました!
今回試したスクリプトは以下
'---------------------------------
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colQuickFixes = objWMIService.ExecQuery _
("Select * from Win32_QuickFixEngineering")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set TextFile = objFSO.OpenTextFile("C:\test.txt", 2, True)
TextFile.Write "Computer,Description,Hot Fix ID,Installation Date,Installed By" & vbCrLf
For Each objQuickFix In colQuickFixes
TextFile.Write objQuickFix.CSName & "," & objQuickFix.Description & "," & objQuickFix.HotFixID & ","_
& objQuickFix.InstallDate & "," & objQuickFix.InstalledBy & vbCrLf
Next
TextFile.Close
- 213 :名無し~3.EXE:2008/07/15(火) 14:01:02 ID:MSaMbScD
- コマンド実行unixの xx.sh > /dev/null 2>&1 にあたるリダイレクトってWindowsで出来ますか?
- 214 :名無し~3.EXE:2008/07/15(火) 14:07:31 ID:THmV8Aue
- >>213
それはどうなるの?UNIXをあんまり使ったことが無いから判らないけどヌル箱の代わりはNULっていうデバイスがあるよ。
というより、スクリプトを出したほうがやりたいことが判りやすくてよいのではないかと。
- 215 :名無し~3.EXE:2008/07/15(火) 15:25:38 ID:I42WGyiI
- 要するに標準出力を捨てて標準エラー出力を標準出力として出力したいってことでしょ
- 216 :名無し~3.EXE:2008/07/15(火) 15:39:11 ID:THmV8Aue
- そういうことはスクリプト内部を変更しちゃうからわからないなぁ。
ためしに今cscriptでNULにリダイレクトしてみたらハンドルが無効だぞハゲって言われちゃったよ。
- 217 :名無し~3.EXE:2008/07/15(火) 19:21:02 ID:+Z+QfLmA
- >>215
違う。標準出力と標準エラー出力をまとめて捨てる。
>>213
コマンドプロンプト上で hoge.bat > nul 2>&1 ってのはできるけど、
リダイレクトはシェルの機能だから、WSHで出来るのかどうかは
わからないな。
Execメソッドで "cmd.exe /c hoge.bat > nul 2>&1" みたいに
やれば動くかもしれないけど、今試せる環境がないので未確認。
- 218 :名無し~3.EXE:2008/07/15(火) 19:26:35 ID:THmV8Aue
- プロンプトを見たくないならRunの第二引数を0にすれば良いんじゃないかな。
- 219 :名無し~3.EXE:2008/07/15(火) 21:10:44 ID:xfeqMLQj
- cscript >NUL 2>NUL
ふつうにできますが何か?
- 220 :名無し~3.EXE:2008/07/18(金) 08:57:51 ID:m/LYbVKS
- >>219
StdOutやStdErrを使ったスクリプトでやってみてよ。
- 221 :名無し~3.EXE:2008/07/18(金) 09:21:37 ID:/qFN6kNU
- w2kだが5.6 jpが入ってるところへ5.7をインストールしたら
日本語リソースそのまま使うみたいで5.7が日本語になった
- 222 :名無し~3.EXE:2008/07/18(金) 15:14:06 ID:XFnK5WyO
- >>220
wscript.stdout.writeline 1
wscript.stderr.writeline 2
できるけど?
- 223 :名無し~3.EXE:2008/07/18(金) 15:30:19 ID:m/LYbVKS
- >>222
>>216の時には出来なかったのだけど、今やったらなぜか出来た。
訳がわからんがまあいいか。
- 224 :名無し~3.EXE:2008/07/22(火) 14:37:12 ID:1x3O0bQO
- >>216はwscript.exeだろ?
- 225 :名無し~3.EXE:2008/07/22(火) 16:04:02 ID:m8H9p6l1
- いんや、CSCRIPTだったよ。
そうしたら(null) ハンドルが無効ですってコンソールに出た
- 226 :名無し~3.EXE:2008/07/23(水) 13:29:19 ID:H4TSZYUl
- CScript の標準入出力は、バージョンによってちょっとずつ挙動が違うよ
自宅のVistaで試したコードが、職場の2kだと動かないとかザラ
- 227 :名無し~3.EXE:2008/07/23(水) 18:55:12 ID:kx1E3i+M
- そりゃさすがにバージョンダウンは無理やろ
- 228 :名無し~3.EXE:2008/07/26(土) 15:54:20 ID:saqPtqJr
- あるフォルダの中のその週に作業されたファイルを集計したいんですけど、ファイル属性で第何週目とかないんでしょうか?
あるいはロジックで上手いこと検出する方法はないでしょうか?
- 229 :名無し~3.EXE:2008/07/26(土) 16:06:55 ID:xOhG5Vbs
- >CScript の標準入出力は、バージョンによってちょっとずつ挙動が違うよ
そうかぁ?標準入出力は内蔵FilsSystemObjectだから変わらんと思うが
- 230 :名無し~3.EXE:2008/07/26(土) 17:08:58 ID:elGRh4zI
- >>229
日付で見ればいいじゃん
週ごとにするなら年ごとに第一週が何日あるかデータベース作れば
簡単に何周目かが分るし、つうか年またぎどうすんだ
- 231 :名無し~3.EXE:2008/07/26(土) 17:20:43 ID:WB4RWxle
- >>228
今週作業したファイルを抽出したいって話なら、
ファイルの更新日時が何日前かを取得して、その値がWeekday(Now)以下なら今週。
- 232 :228:2008/07/26(土) 18:25:58 ID:kbSenNqx
- >>230-231
ありがとうございます。今週分が必要なので>>231でいけそうです。
何日前かを計算するのは日付からNOWを引いて、答えの整数部分で考えればいいですよね?
- 233 :名無し~3.EXE:2008/07/26(土) 19:02:39 ID:icWXyyQo
- >229
変な動きするのもある。
StdIn.Read(1)すると、一行読み込んだ上で先頭の1文字返す
(なので、その時点ではおかしくないのだが、次のReadの際には残りが捨てられている)
とか、そんな変な挙動をするものがある。
- 234 :名無し~3.EXE:2008/07/26(土) 19:09:23 ID:WB4RWxle
- >>232
>何日前かを計算するのは日付からNOWを引いて、答えの整数部分で考えればいいですよね?
それだと誤差が出るはずなので、いったんそれぞれをDAYで丸めてから引き算した方がいい。
- 235 :名無し~3.EXE:2008/07/26(土) 23:47:05 ID:yRWXnRv/
- >233
それは単なるバグじゃないのか?
「古いバージョンには○○なバグがある」 って言えば、「ふうんなるほど」 で話が終わるものを
「バージョンによってちょっとずつ挙動が違う」 なんて書くから誤解される。
- 236 :名無し~3.EXE:2008/07/27(日) 02:20:08 ID:EoLlJkI3
- WScript.StdInの実装バグなので
Set StdIn=WScript.StdIn
StdIn.Read(1)
とすればよかったような
- 237 :名無し~3.EXE:2008/08/04(月) 17:45:05 ID:qtSSqajn
- IE自動操作してるんだけども、
input type= file にはPCから wsh 実行しても入力出来ないのですか?
せっかく本まで買ってvbs覚えようとしてるのに、困った…(´・ω・`)
- 238 :名無し~3.EXE:2008/08/04(月) 18:56:19 ID:IyBaEu56
- 金玉ウィルスでも作るつもりか?
- 239 :名無し~3.EXE:2008/08/04(月) 20:27:14 ID:qtSSqajn
- (`・ω・´)金玉なんて作るわけないでしょ!
- 240 :名無し~3.EXE:2008/08/04(月) 22:34:43 ID:tB95YHdp
- つSendKeys
- 241 :名無し~3.EXE:2008/08/04(月) 23:53:35 ID:qtSSqajn
- >>240
ありがとう、スマートじゃないけどその方法で取りあえず上手くいきました
- 242 :名無し~3.EXE:2008/08/05(火) 05:36:14 ID:gDmp4m0n
- 金玉ウイルスって何?
玉筋ウイルスなら知ってるが。
- 243 :名無し~3.EXE:2008/08/05(火) 17:42:33 ID:KazUXVcD
- 球筋ウイルスってなに?
キンタマウイルスなら知ってるが。
- 244 :名無し~3.EXE:2008/08/06(水) 09:28:25 ID:Wr7qdPjn
- 以下for(;;)
- 245 :名無し~3.EXE:2008/08/06(水) 11:24:45 ID:aAYjTfjb
- break;
- 246 :名無し~3.EXE:2008/08/13(水) 19:55:03 ID:6iS3g15e
- POWERSHELLってこのスレの人的に見てどうなの?
VBSで出来たことが全部出来るんですか?
- 247 :名無し~3.EXE:2008/08/15(金) 09:31:12 ID:B0JNZm6F
- PowerShell はすばらしいですよ。
PowerShell を使えば、あなたの仕事がはかどります。
PowerShell ならシステムの管理が獲活に行えます。
例えて言うなら エスペラント語 みたいなもんです。
- 248 :名無し~3.EXE:2008/08/17(日) 13:31:35 ID:U69J/FrR
- 獲活?
- 249 :名無し~3.EXE:2008/08/28(木) 22:26:26 ID:uWfeBCSV
- たぶん円滑
- 250 :名無し~3.EXE:2008/08/30(土) 14:11:12 ID:d0tUT80M
- 統合アーカイバプロジェクトのKBA.DLLをインストールして使ってみたのですが、複数ファイルをドロップした時に思うように動作してくれません。
例えば、
Set FSO = CreateObject("Scripting.FileSystemObject")
Set oZIP = CreateObject("KBA.ZIP")
For Each sArg in WScript.Arguments
if FSO.FileExists(sArg) Then
oZIP.OpenArc sArg
MsgBox "1:" & sArg & "2:" & oZIP.ArcName
oZIP.CloseArc
End if
Next
上記スクリプトに、zipファイルを1つドロップした場合、「1:ドロップしたファイル名2:ドロップしたファイル名」とメッセージが出るのですが、
2個以上のzipファイルをドロップすると、1個目のファイルは「1:ドロップしたファイル名2:ドロップしたファイル名」、
2個目以降は「1:ドロップしたファイル名2:」となってしまいます。
OpenArcメソッドを使わなければ、それ以外のメソッド、ArcCmd(圧縮・解凍などの各種操作)・FileCount(格納されているファイルの総数を返す)などは複数のファイルでも正しく処理できます。
書庫の情報を取り出したり書庫内ファイルを検索するために書庫ファイルを指定するのがOpenArcメソッドですが、呼び出すと2個目以上のファイルの処理に問題が出るようです。
CloseArcメソッド(リファレンスには「OpenArcで結びつけたハンドルを解放する」とあります。)も機能していない?ようです。
更新日も古く、使っている人が少ないのか、googleでもほとんど情報を得られませんでした。どなたか、助言お願いします。
- 251 :名無し~3.EXE:2008/08/30(土) 21:28:30 ID:Oes8pJ1M
- 知らんけど、毎回オブジェクト作成→解放してみるとか
- 252 :名無し~3.EXE:2008/08/30(土) 21:44:45 ID:4ib5BU+k
- jscriptでIEを操作して、「フォームを送信して結果の本文を取得する」
ってのをやろうとしています。
debug用に IE.Visible = true; で試しているところですが、
IE.Navigate2 でPOSTしてフォームの送信に成功し、結果が表示されるところ
まではできています。
しかし、その後 IE.document.body.innerhtmlや.innertextはもちろん、
IE.locationnameすらも取得できません。(nullが返る)
もちろん IE.ReadyState == 4 である事は待ってから取得しています。
こんなことってあるんでしょうか。
本文など情報を取得するにはどうすればよいのでしょう。
- 253 :252:2008/08/30(土) 22:57:59 ID:4ib5BU+k
- IE.locationnameは取得できていることがわかりました。
たまたまデバッグしていたページのタイトルが空だっただけでした。
やはりIE.document.body.innerhtml, .innertextは取得できません。
- 254 :名無し~3.EXE:2008/08/30(土) 23:26:37 ID:sDyQKTTJ
- 間違ってるだけ
- 255 :名無し~3.EXE:2008/08/30(土) 23:47:47 ID:DSTdld3c
- innerHTML innerText
VBじゃないんだから正しく書け。
- 256 :252:2008/08/31(日) 00:00:23 ID:Vnde2TRN
- >>254-255
う…
その通りでした。ありがとうございます。
存在しないプロパティならエラーになるはずだと思っていたので、エラーに
ならない以上そういう問題はないと思いこんでしまっていました。
- 257 :名無し~3.EXE:2008/08/31(日) 22:46:35 ID:6Tzy7HL9
- 質問です
PowerShell というのはつまり
なんちゃって Perl
なわけですか?
- 258 :名無し~3.EXE:2008/08/31(日) 23:08:58 ID:EaFSdaSA
- CGI=Perlと思っていたあの頃・・・
- 259 :名無し~3.EXE:2008/09/02(火) 22:39:04 ID:/oXppw8S
- 下のVBSとJScriptは同じ動作をするんですが、なぜJScriptのほうで var objSys = enumSys.item(); という手間がひとつ多く必要なのかがよくわからんのです。
どなたか教えてプリーズ。
-----VBS
Set wmi = GetObject("winmgmts:")
Set SystemSet = wmi.ExecQuery("SELECT * FROM Win32_OperatingSystem")
for each System in SystemSet
WScript.Echo "Caption: " + System.Caption
WScript.Echo "Version: " + System.Version
WScript.Echo "Memory: " + System.TotalVisibleMemorySize
next
-----JScript
var wmi = GetObject("winmgmts:");
var SystemSets = wmi.ExecQuery("SELECT * FROM Win32_OperatingSystem");
for(var enumSys = new Enumerator(SystemSets); ! enumSys.atEnd(); enumSys.moveNext()) {
var objSys = enumSys.item();
WScript.Echo("Caption: " + objSys.Caption);
WScript.Echo("Version: " + objSys.Version);
WScript.Echo("Memory: " + objSys.TotalVisibleMemorySize);
}
あと、JScriptでWMIとかをいじる時に、オブジェクトの中身を見られるメソッドみたいなものがあれば教えて欲しいです。
enumSys.toSource()
だと「実行時エラー: オブジェクトでサポートされていないプロパティまたはメソッドです。」と言われてしまいます。
- 260 :名無し~3.EXE:2008/09/02(火) 22:53:39 ID:UTiA0o1v
- enumSysはEnumeratorオブジェクトだから
オブジェクトの中身って何
- 261 :名無し~3.EXE:2008/09/02(火) 23:20:06 ID:uJm2pAsf
- >>259
自分でtoSourceをr定義する
- 262 :259:2008/09/03(水) 00:23:11 ID:JepG4paN
- >>260
言われてみたら new Enumerator でオブジェクトを作ってた。
全然目が届いてなかったぜ。ありがとう
>>261 が自分で作れと言ったので9割コピペで捏造した。
function printProperty(obj) {
for (var prop in obj){
WScript.Echo(prop + " -> " + obj[prop]);
}
}
<略>
for(var enumSys = ...
var objSys = enumSys.item();
printProperty(objSys);
だけど、なにも表示されない。
>>259 のコードで少なくとも .Caption と .Version と .TotalVisibleMemorySize は在るのがわかってるので、printProperty の for ループは最低3回はまわるはず(だよね?)
「->」だけの表示でもいいから3回は表示されると思ったんだけどその表示も無し。
神よ添削してくだされ。
- 263 :259:2008/09/03(水) 01:01:10 ID:JepG4paN
- 当初の目的は達成できました。
.Properties_ ってなんだよ!そんなの知らなきゃわかんないよ!って気分になりました。
moz-addon.g.hatena.ne.jp/ZIGOROu/20071101/1193945908 さんありがとう。
for(var enumSys = new Enumerator(SystemSets); ! enumSys.atEnd(); enumSys.moveNext()) {
var objSys = enumSys.item();
for(var enumProp = new Enumerator(objSys.Properties_); ! enumProp.atEnd(); enumProp.moveNext()) {
WScript.Echo(enumProp.item().name + " -> " + objSys[enumProp.item().name]);
}
}
「こんな局面のときは .Properties_ ってのが使えるぜ」みたいな知見は経験を積むしかないんだろうか?
あるいは体系的に学習すれば身につくレベルの話?
- 264 :名無し~3.EXE:2008/09/03(水) 01:27:09 ID:rs8DnNaP
- 経験かな
エンジンのバージョンごとにバグがあって
それに気が付かずに悩んだりすることもあるし
- 265 :名無し~3.EXE:2008/09/04(木) 19:27:26 ID:l2+9WVFc
- WSH(JavaScript)でIEを操作するスクリプトを書いています。
IE = new ActiveXObject("InternetExplorer.Application");
IE.Visible = false;
IE.Navigate("http://www.google.com/");
てなことをやっていると、全く操作ができなくなることがある。
IE.Visible = true;
にして確認してみると、
「セキュリティの警告」
「セキュリティで保護されたページを表示しようとしています」
というポップアップが出ていて、OKをクリックしてやらない限りWSHからは
操作できないようだ。
こういうダイアログが出ているかどうかを確認して、出ていたらOKを押す、
というのはどうすればいいですかね。
- 266 :名無し~3.EXE:2008/09/04(木) 19:51:14 ID:2bJj6jy/
- >>265
IE.Visible = true;
で、いいんじゃね?
- 267 :名無し~3.EXE:2008/09/04(木) 19:53:27 ID:l2+9WVFc
- trueにすれば
ポップアップが開いたことをスクリプトから調べる方法
そのポップアップのOKを押す方法
はあるということ?どうすればいい?
- 268 :名無し~3.EXE:2008/09/04(木) 19:58:57 ID:2bJj6jy/
- 「スクリプトから」はしらない。
- 269 :名無し~3.EXE:2008/09/04(木) 20:13:30 ID:l2+9WVFc
- あぁ、人が見てOKすればいいってことですか?
うーん、自動化したいということと、人がOK押してる間に
IE.ReadyState == 4で先に進んじゃうのよね。操作できないのに。
IE.Navigate("どっか");
while(IE.ReadyState != 4) {
WScript.Sleep(250);
}
ほげほげ;
IE.Navigate("べつのどっか");
while(IE.ReadyState != 4) {
WScript.Sleep(250);
}
ふがふが;
ってなことをしていて、"どっか"の時点で警告が出ると、さくっとほげほげの
処理を通り過ぎて"べつのどっか"へのNavigateを実行するけど失敗して、
かつReadyStateは4のままだから、人がOKを押す前にふがふがまで行ってしまう。
というわけで、(ほんとはやだけど)最悪OKは人が押すとしても、警告のせいで
IEの処理が止まってる事をスクリプトから把握できないと困るのよ。
できないとなると、こういうのを回避する別のいい方法はないかなあ。
- 270 :名無し~3.EXE:2008/09/04(木) 23:43:29 ID:xy3FNoG2
- If .AppActivate(ダイアログのタイトル) Then .SendKeys "OKのショートカットキー"
- 271 :名無し~3.EXE:2008/09/05(金) 00:11:56 ID:ymZX69/d
- トンクス、明日やってみる
if WScript.Shell.AppActivate("ダイアログのタイトル") {
WScript.Shell.Sendkey("ショートカット");
}
JavaScriptだからこうかな。
VBScriptはオブジェクト名を省略できるの?
- 272 :名無し~3.EXE:2008/09/05(金) 00:14:55 ID:+9TG1vLi
- VBScriptでもJScriptでもwith
- 273 :名無し~3.EXE:2008/09/05(金) 14:11:28 ID:8iLTXUTa
- >>265
たぶんみなさん確実に私より詳しそうだから、全然はずしていたら読み飛ばしてください。
IEを操作するときは、どこかで、objIE.Navigate("about:blank") でブランクページを
作ってから目的のページに飛ぶほうがいい、って書いてあって(ように思う)
私は何も考えずにそうしてます。そういう問題ではないですか?
(っていうか、一旦ブランクにする理由はすっかり忘れてしまって、ググッたけど、
見つけられなかった。どういう意味なのか知っている人がいたら解説してほしいです....)
- 274 :名無し~3.EXE:2008/09/05(金) 14:48:19 ID:+9TG1vLi
- しないほうがよい
- 275 :265:2008/09/05(金) 17:03:26 ID:VTJ1fL7j
- >>273
IE.Navigateの問題ではなくて、モーダルダイアログに阻まれて元アプリの
コントロールができなくなる話なので、本質的にはIEに関係ないと思う。
たぶんIE.Visible = false;なのにGUIからしかコントロールができない
API設計のへぼさが問題だと思うけどしょーがないみたいね。
とりあえず>>270-271でうまくいったのでそれでいい事にする。
ところで、ActiveXObject()でオブジェクトを作るとエラーの判定ができる
けど、 wsfで<object />を使って作ると判定できないのかな。
ScriptPW.Passwordを使ってスクリプトを書いていたらscriptpw.dllが無い
環境でエラーになる事がわかったから判定したいけど、<object />で
作っていたので返り値で判断ができない。
<object />を使う場合は絶対失敗しない事を確信できる状況でしか使うな
ってことなのかな。
使えば使うほどかゆいところに手が届かない感じがしてくるなー。
ちょっとしたことに使うなら便利なんだけどさ…。
- 276 :名無し~3.EXE:2008/09/05(金) 18:13:47 ID:+9TG1vLi
- <object id=hoge />
TypeName(hoge)で確認
- 277 :名無し~3.EXE:2008/09/05(金) 19:29:24 ID:VTJ1fL7j
- >>276
すまん、俺が悪かった。
問題はそれ以前に、エラーになったらその時点で実行が止まっちゃう事にあった。
オブジェクトを作成できなくても実行を続けるにはどうすればいいかな。
- 278 :名無し~3.EXE:2008/09/07(日) 09:27:05 ID:F9Z8qgIn
- HTAStopとNoScript(Firefoxのアドオンではない)で無効に設定しているので使ってません。
- 279 :名無し~3.EXE:2008/09/07(日) 21:28:33 ID:Bfr7d4al
- >>274
IEなんて使わないで直接取りに行ったら?
POSTもできるし
Function PrintHttpDocSimply(url,param)
Dim oXmlHttp
Set oXmlHttp = CreateObject("MSXML2.XMLHTTP.4.0")
oXmlHttp.Open "POST", url , False
oXmlHttp.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
oXmlHttp.send param
PrintHttpDocSimply = oXmlHttp.responseText
End Function
paramは ”hoge=hoho&baka=kaba&momar=hiroyuki”
とか入れておけばいい
- 280 :名無し~3.EXE:2008/09/07(日) 21:38:59 ID:TQSameT9
- なぜ全角文字を混ぜる
- 281 :265:2008/09/08(月) 02:45:23 ID:K462bD72
- >>279
>>274じゃないけど反応してみる
さっぱりわからんので教えてくらはい。
再帰してるのはなぜ?
PrintHttpDocSimplyの引数が(url, param)なのにoXmlHttp.responseTextだけ
渡すのでいいの?
つーかそもそもoXmlHttp.responseTextはどこで定義されているの?
- 282 :名無し~3.EXE:2008/09/08(月) 06:42:42 ID:L5IL5s6b
- VBScript Function でぐぐれ
- 283 :265:2008/09/08(月) 16:13:17 ID:TQKBbcaA
- ぐぐった。
VBScriptにはreturnが無いのね。
もしかして再帰できないの?と思ったら再帰の呼び出しはcallを使うのか…。
>>279
サンクス。
>>275にも書いたように>>270-271でなんとかしちゃったけど、後で試してみる。
あと>>277は、try {} catch() {}すればいい事に気がついた。
- 284 :名無し~3.EXE:2008/09/10(水) 00:05:22 ID:nQEAey34
- wshとは直接関係無いけど
Windowsのシステム内でのレジストリとWMIの位置付けの違いがよくわからん
レジストリは設定の保存場所だろ?
WMIも設定の保存場所…なのか?
- 285 :名無し~3.EXE:2008/09/10(水) 01:11:02 ID:+SACXhEc
- >>282
MSXML2.XMLHTTP.4.0 というObjectでいろいろ定義されている
古いOSならいざ知らずたいがいの環境で使えるのが吉
- 286 :名無し~3.EXE:2008/09/10(水) 01:20:16 ID:bhv+KmqL
- 昔作ったBATを置き換えようかと思ってるんだけど
%~dpnx1とか%~n1とかどう取得するの?
- 287 :名無し~3.EXE:2008/09/10(水) 01:59:46 ID:VUGKxJpv
- >>286
コマンドラインパラメータの取得なら
WshArguments オブジェクト
http://msdn.microsoft.com/ja-jp/library/cc364463.aspx
パスの分解なら
FileSystemObject のメソッド
http://msdn.microsoft.com/ja-jp/library/cc428078.aspx
各種 Get****Name
なげーよカスと思っても口にしてはいけないよ。
- 288 :名無し~3.EXE:2008/09/10(水) 15:55:55 ID:TB/+ZEHL
- サーバーのデスクトップ画面をリモートから保存したい
クライアントでATバッチ実行してサーバにBATのrunasでadmin権限取得用vbsをechoで作成して実行するようにスケージュル
指定時間になったら、サーバで上で自動作成されたadmin.vbsが実行されてクライアントの中のcap.batが実行される
cap.batでサーバのデスクットプ画面を保存するadmin.vbsは実行後にadmin.vbsで削除される
一応動いたけどサーバでcap.bat実行中の画面が保存されるので困っている
runasでsendkeys使っているので非表示でbatを起動することはできないのでsendkeyが終った後にcap.batの最小化又はウィンドウサイズを位置を変更したい
↓の方法も試しましたがコマンドプロンプトの画面はaltキーが反応してないみたいで使えませんでした
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1210643057
wshで実行中のコマンドプロンプトの最小化又はウィンドウサイズを位置を変更する方法はありませんか?
- 289 :名無し~3.EXE:2008/09/10(水) 20:49:57 ID:xOxjqnd6
- わざわざそんなことせずともできると思うが、具体的に
- 290 :286:2008/09/11(木) 07:01:11 ID:KjAck0oQ
- >>287
thx
- 291 :at.bat part1:2008/09/11(木) 08:49:14 ID:xAqasSGI
- >>289
@echo off
@REM 実行するアプリとスケジュール時間
set RUNBAT=\\%COMPUTERNAME%\z$\bat\リモート\run_remote_pc.vbs
set RUNTIME=7:30
call :time_run
echo PC名 ping 内容 時間%h%時%m%分%s%秒>>atlog.txt
@REM ----------------------------------------------------------
for /F "tokens=1" %%a in (pclist.txt) do call :sub1 %%a
GOTO :EOF
@REM ----------------------------------------------------------
:sub1
SET LIST=%1
:PING
SET PING=ERR_LAN
ping /n 1 %LIST% | find "Reply" >tmp1.txt
for /F "tokens=1" %%a in (tmp1.txt) do SET PING=%%a
del tmp1.txt
IF NOT %PING%==Reply GOTO NGLAN
:OKLAN
echo Dim WshShell>\\%LIST%\c$\at_admin_run.vbs
echo Set WshShell = CreateObject(^"WScript.Shell^")>>\\%LIST%\c$\at_admin_run.vbs
echo WshShell.Run ^"runas.exe ^/user:megaoak\kanazawa ^"^"c:\at_admin_run.bat^"^" ^", 2 >>\\%LIST%\c$\at_admin_run.vbs
echo WScript.Sleep(100)>>\\%LIST%\c$\at_admin_run.vbs
echo WshShell.AppActivate(^"runas.exe^")>>\\%LIST%\c$\at_admin_run.vbs
echo WScript.Sleep(1)>>\\%LIST%\c$\at_admin_run.vbs
echo WshShell.SendKeys(^"kanazawa{ENTER}^")>>\\%LIST%\c$\at_admin_run.vbs
echo Set objFSO = WScript.CreateObject(^"Scripting.FileSystemObject^")>>\\%LIST%\c$\at_admin_run.vbs
echo objFSO.DeleteFile ^"c:\at_admin_run.vbs^">>\\%LIST%\c$\at_admin_run.vbs
- 292 :at.bat part2終り:2008/09/11(木) 08:54:52 ID:xAqasSGI
- echo start wscript //nologo ^"%RUNBAT%^">\\%LIST%\c$\at_admin_run.bat
echo Del c:\at_admin_run.bat>>\\%LIST%\c$\at_admin_run.bat
AT.exe \\%LIST% %RUNTIME% /interactive c:\at_admin_run.vbs
echo %LIST% %PING% 接続OK %h%時%m%分%s%秒>>atlog.txt
GOTO :EOF
@REM ----------------------------------------------------------
:NGLAN
call :time_run
echo %LIST% %PING% 接続NG %h%時%m%分%s%秒>>atlog.txt
GOTO :EOF
@REM ----------------------------------------------------------
:time_run
@REM --/現在時刻のHとM取得/--start
for /F "tokens=1,2,3 delims=:" %%a in ("%TIME%") do set h=%%a&set m=%%b&set s=%%c
@REM 秒先頭の2桁
set s=%s:~,2%
echo -%h%時%m%分%s%秒-
@REM 先頭の0を取り除く
if %h% LSS 10 set h=%h:~1,1%
if %m% LSS 10 set m=%m:~1,1%
if %m% LSS 10 set s=%s:~1,1%
@REM --/現在時刻のHとMとS取得/--end
GOTO :EOF
↑↑これで一応動くようになったけど、テストしたらサーバで下のメッセージがでて5台しか成功してなかった
スクリプト"\\クライアントPC\z$\bat\リモート\run_remote_pc.vbs""(コンピュータへの接続数が最大値に達しているため、これ以上このリモートコンピュータに接続できません。)。
- 293 :名無し~3.EXE:2008/09/11(木) 18:03:54 ID:oxo2U/u+
- minimizeall
- 294 :名無し~3.EXE:2008/09/11(木) 18:08:49 ID:WF6Xi3UD
- >>293
全部のウィンドウが最小化するとサーバで起動中のアプリの画面をスクリーンキャプチャーできない
特定のウィンドウのみを最小化,移動,サイズ変更したい
なぜかわからないが、runas使わなくても動いたのでソースがシンプルになりました
また明日検証してみる
- 295 :名無し~3.EXE:2008/09/11(木) 18:13:23 ID:oxo2U/u+
- >全部のウィンドウが最小化するとサーバで起動中のアプリの画面をスクリーンキャプチャーできない
???
>↓の方法も試しましたがコマンドプロンプトの画面はaltキーが反応してないみたいで使えませんでした
コマンドプロンプト以外には使えるんだろ?
- 296 :名無し~3.EXE:2008/09/11(木) 20:10:09 ID:WF6Xi3UD
- コマンドプロンプトの画面のみを最小化,移動,サイズ変更したい
- 297 :名無し~3.EXE:2008/09/11(木) 21:57:27 ID:z48R5mCN
- > コンピュータへの接続数が最大値に達しているため、これ以上このリモートコンピュータに接続できません。
Windows Server使え
- 298 :名無し~3.EXE:2008/09/11(木) 22:49:58 ID:WF6Xi3UD
- >>297
windowsクライアントからwindowsサーバに対して実行してるから無理です
その問題はsambaサーバにキャプチャーしたpngファイルを保存する事にして解決しました
- 299 :名無し~3.EXE:2008/09/11(木) 23:17:17 ID:oxo2U/u+
- start /min 続きバッチ
- 300 :名無し~3.EXE:2008/09/12(金) 06:57:04 ID:DXz7uta5
- >>299
startで最小化あるんですね
ありがとう試してみます
- 301 :名無し~3.EXE:2008/09/16(火) 21:31:25 ID:OqBWXUZ3
- 301
- 302 :名無し~3.EXE:2008/09/19(金) 11:28:54 ID:9tqS9cEB
- atでサーバをリモートでキャプ取るのできた
キャプソフトはccap.exe スクリーンセーバキャンセルできてPNG保存可能で197KB
exeやvbsをアクセス権フリーな状態のsambaに置いて後は普通にATコマンドのスクリプト書くだけだった
- 303 :名無し~3.EXE:2008/10/17(金) 19:19:30 ID:XaGw/LzA
- 職場でノートパソコンの更新があったが
ひきづつきwshは使えるようだ、よかった。
- 304 :名無し~3.EXE:2008/10/31(金) 22:10:39 ID:pltrwarm
- webでツールバーとかアドレスバーとか戻るボタンがないブラウザ画面がポップアップすることがありますが、vbsであの状態のIEを呼び出せないでしょうか?
- 305 :名無し~3.EXE:2008/10/31(金) 22:25:34 ID:hqP79kIz
- MenuBarとかToolBarとか
ttp://msdn.microsoft.com/en-us/library/aa752084(VS.85).aspx
- 306 :名無し~3.EXE:2008/10/31(金) 22:37:56 ID:pltrwarm
- おおこんな便利なページがあるんですか!ありがとうございますいろいろ遊んでみます
- 307 :名無し~3.EXE:2008/10/31(金) 22:48:15 ID:pltrwarm
- あははは楽しいです。
美しくないコードかもしれないけど結果は良好です。
Set IE = CreateObject("InternetExplorer.Application")
ie.menubar=false
ie.AddressBar=false
ie.toolBar=false
ie.visible = true
ie.navigate2 "http://www.google.co.jp/"
- 308 :名無し~3.EXE:2008/11/08(土) 16:14:45 ID:CSQUIZij
- そういう書き方しかないべさ
- 309 :名無し~3.EXE:2008/11/16(日) 12:13:26 ID:jsDDDVhU
- IEで動くVBSを書いていますが、
Setinterval で Subプロシージャを呼び出すときに
引数をSubプロシージャに渡したいのですが、エラーになります。
Googleも調べてみたのですが、解決できていません。
今書いている(エラーになる)コードは
Sub First
ID = window.setInterval("chk(" & a & ")", Time, "vbScript")
End Sub
Sub chk(b)
処理
End Sub
です。引数にはIPアドレスが入っています。
エラーは ')'がありません です。
エラーダイアログの"ライン"は 1 ですが、ソースの1行目はまったく関係ない内容(Dim定義)です。
おそらく、Setintervalの書き方の問題だと思うのですが、どなたかお解かりになりますか?
- 310 :名無し~3.EXE:2008/11/16(日) 14:52:18 ID:frYs1RTI
- "chk(""" & a & """)"
- 311 :名無し~3.EXE:2008/11/30(日) 11:30:40 ID:42N27sG3
-
- 312 :名無し~3.EXE:2008/12/01(月) 02:28:06 ID:tUazuBOQ
- 質問させてください。
vbsからbatファイルを起動させて、当該batファイルの戻り値を取得したいです。
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("return.bat")
return.batは正常時0、異常時1を返します。
このbatをvbsから起動させた場合、戻り値はどのように取得できるのでしょうか。
よろいしくお願いいたします。
- 313 :名無し~3.EXE:2008/12/01(月) 18:29:13 ID:YhZLL2V/
- ExitCode
- 314 :名無し~3.EXE:2008/12/01(月) 18:32:18 ID:SxqUT20G
- >>312
http://msdn.microsoft.com/ja-jp/library/cc364359.aspx
- 315 :名無し~3.EXE:2008/12/03(水) 15:22:38 ID:ZqYgpyCA
- Runを使えよ
- 316 :名無し~3.EXE:2008/12/04(木) 23:56:02 ID:mdmbOzTn
- そんなのしRun
- 317 :名無し~3.EXE:2008/12/14(日) 13:59:58 ID:vsQqgwYe
- 今日初めてVBSを触りました。
IEのコンテキストメニューからパスワード生成を行えるように
したいのですが(ググったらコードでてきたのでそのまま利用)
実行するとInputBoxに書けませんというエラーが出ます。どうしてでしょうか?
メニューに登録したファイルの内容は↓
<SCRIPT LANGUAGE="VBScript">
<拾ったコード>
</SCRIPT>
拡張子はhtmにしてあります。
このファイルを直接ダブルクリックした場合は実行されますが、
右クリックからの起動はうまくいきません。
- 318 :名無し~3.EXE:2008/12/14(日) 14:09:33 ID:Pv8LMZtA
- >>317
<SCRIPT LANGUAGE="VBScript">
<修正済みコード>
</SCRIPT>
- 319 :名無し~3.EXE:2008/12/14(日) 15:36:33 ID:pZTS1TIH
- InputBoxは使えんよ
promptに変えろ
- 320 :名無し~3.EXE:2008/12/14(日) 17:05:33 ID:vsQqgwYe
- むぅ・・・そうなのですか。
やってみます。
- 321 :名無し~3.EXE:2008/12/31(水) 13:16:01 ID:rgPn1704
-
- 322 :名無し~3.EXE:2009/01/06(火) 18:31:56 ID:/SR1ia3E
- WScript.Echo("あけおめ");
- 323 :名無し~3.EXE:2009/01/09(金) 06:16:49 ID:QF8xGOdd
- そんなに言うなら・・・ほら、開けましたよ
\ 毛 /
腿 \_ | _/
彡彡彡
ミミミミ クリトリス
ミミミミ / ̄ ̄ ̄ ̄
ノ σ ヽ 尿道
/ / ゚ヽ ̄ ̄ ̄ ̄
大陰唇 / //\\ \
 ̄ ̄ ̄ ̄ ( ( ) ── 錠前
\ \\// /
` \/ '
\ *──肛門
\_____/\_____/
- 324 :名無し~3.EXE:2009/01/09(金) 16:03:23 ID:Mg2wGxpw
- ドメインに参加しているクライアントPC側で、パスワードの変更をすることはできるのでしょうか?
Ctrl+Alt+Del で出てくる「パスワードの変更」と同等の処理をしたい。
- 325 :名無し~3.EXE:2009/01/09(金) 17:01:35 ID:Mg2wGxpw
- >>324 です。
自己解決しました。
ttp://www.vector.co.jp/soft/winnt/util/se248538.html
これで、やりたいことはできました。
- 326 :名無し~3.EXE:2009/01/09(金) 22:38:41 ID:xLY5sfUA
- あげ。
>>215
念のために言うと、213は標準出力も標準エラー出力も/dev/nullに落ちるぞ。
- 327 :名無し~3.EXE:2009/01/09(金) 23:17:31 ID:lsbTOzQV
- うしゅ
- 328 :名無し~3.EXE:2009/01/10(土) 01:18:20 ID:NcbVfhx+
- >>326
>>217
- 329 :名無し~3.EXE:2009/01/15(木) 12:48:53 ID:j2IRk/B4
-
- 330 :名無し~3.EXE:2009/01/21(水) 13:20:20 ID:ngdCDsJZ
- ほ
- 331 :名無し~3.EXE:2009/02/02(月) 11:51:14 ID:g/gk+65f
- ho
- 332 :名無し~3.EXE:2009/02/06(金) 01:53:11 ID:QaTxAdVH
- 抽選プログラムを作るのだが、さっぱりです。
配列作って、名前格納して、ランダム数を返してとやろうと思うが、
プログラミング知識がないからどの関数、オブジェクト等使ったらいいかわからない。
わかる人みてたら教えてください。
- 333 :名無し~3.EXE:2009/02/06(金) 02:08:13 ID:RtieZEZ2
- >>プログラムを作るのだが、
まず、ここが間違ってね?
- 334 :名無し~3.EXE:2009/02/06(金) 05:19:21 ID:P6lp/+Jv
- >>332
Array、Randomize、Int、Rnd、UBound
変数を宣言するならDim、結果をダイアログ表示するならMsgbox
とりあえずこれで事足りるはず
ここはコード作成依頼所ではないのであとは自分で頑張りましょう
まぁ頑張るのが嫌だから諦めるってなら構わないが
頑張るのが嫌だから全部教えてってのは無しの方向で
- 335 :名無し~3.EXE:2009/02/06(金) 14:14:09 ID:92cdMgwW
- >>334
ちゃんと教えてやれや
- 336 :名無し~3.EXE:2009/02/06(金) 22:17:43 ID:+iF1QBvo
- ちゃんとやれよ。
以上。
- 337 :名無し~3.EXE:2009/02/06(金) 23:00:35 ID:92cdMgwW
-
んこ
- 338 :名無し~3.EXE:2009/02/07(土) 14:45:14 ID:TgO/tMu7
- はいよ。
けっぱれ、VBScript!
Dim arrRes: arrRes = Array("大吉", "中吉", "小吉", "凶", "豚")
Dim iMax: iMax = UBound(arrRes) + 1
Randomize(Second(Time))
Do
If MsgBox(arrRes(Int(iMax * Rnd)), vbOKCancel) = vbCancel Then Exit Do
Loop
- 339 :名無し~3.EXE:2009/02/07(土) 15:11:11 ID:3rhOouhW
- ありがとうございました
- 340 :名無し~3.EXE:2009/02/09(月) 23:20:19 ID:+sxPMNu/
- WSHってバッチのGOTOみたいに処理って飛べない?
- 341 :名無し~3.EXE:2009/02/09(月) 23:43:05 ID:zHc9nJdI
- 使う言語次第だな
まあ大抵の言語はサポートしてるんじゃないか
- 342 :名無し~3.EXE:2009/02/10(火) 12:32:38 ID:K3mAHF4Y
- ↓この辺に、アンチ後藤
- 343 :名無し~3.EXE:2009/02/10(火) 23:03:08 ID:s6VWMy5j
- URLエンコードをJscriptでやろうと思っているのですが
http://pc8.2ch.net/test/read.cgi/win/1126543183/156
のスクリプトを拝借したところURL全部がエンコードされてしまいます
http://www.tagindex.com/tool/url.htmlでURLを変換した時のような
「://」や「/」だけをエンコードすることはできないでしょうか↓
http%3a%2f%2fpc11%2e2ch%2enet%2ftest%2fread%2ecgi%2fwin%2f1190548945%2f
- 344 :名無し~3.EXE:2009/02/10(火) 23:59:22 ID:e11qerpL
- URLエンコードをなんだと思(ry
目的がはっきりしているなら置換すりゃいいだけでしょ。
- 345 :名無し~3.EXE:2009/02/11(水) 12:41:23 ID:ooGgBaiE
- フォルダを指定してコマンドプロンプトを開きたいのですがどのように記述すればよいのでしょうか?
- 346 :名無し~3.EXE:2009/02/11(水) 13:08:59 ID:tgWaCZf2
- >>345
WshShell のカレント・ディレクトリを指定してから cmd を Run 。
- 347 :名無し~3.EXE:2009/02/11(水) 15:49:08 ID:ooGgBaiE
- ありがとうございます。
一発のコマンドではできないんですね
- 348 :名無し~3.EXE:2009/02/11(水) 16:35:20 ID:CvOFcaSe
- 1行でってこと?
- 349 :名無し~3.EXE:2009/02/11(水) 18:10:18 ID:rw23u0Y9
- WScript.CreateObject("WScript.Shell").Run "cmd /C start /D ""C:\Program Files"""
・・・なんかアホっぽい
- 350 :名無し~3.EXE:2009/02/11(水) 21:41:53 ID:18BMTdnd
- cmd.exe "/K pushd {ディレクトリ}"
- 351 :名無し~3.EXE:2009/02/11(水) 22:47:23 ID:bH/mfyuf
- 入力された値が全角と半角の区別と、数値と文字の判定はどうやってするんだ?
文字で入力された場合にエラーとなるように表示したいんだが、判定がわからないからIf文で制御できないでいる…
- 352 :名無し~3.EXE:2009/02/11(水) 23:21:04 ID:ooGgBaiE
- >>346-350
ありがとうございました
DOSの奥深さを知りました
- 353 :名無し~3.EXE:2009/02/12(木) 00:14:53 ID:nInNR6uz
- AscB(MidB(文字, 2, 1))で2バイト目をチェックすれば分かる。
0なら半角
255なら、
1バイト目を判定して、ある範囲なら半角カナ、それ以外は全角英数。
それ以外は全角
数値判定はIsNumeric使えば?
- 354 :名無し~3.EXE:2009/02/12(木) 18:46:38 ID:BS0CoEcR
- プロポーショナルフォントのときはどするんだよ
- 355 :名無し~3.EXE:2009/02/12(木) 19:00:14 ID:s5GtsH1h
- ∩___∩ |
| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
- 356 :名無し~3.EXE:2009/02/12(木) 19:13:16 ID:Qshlqz+a
- どうせなら、シフトJIS以外の文字はどうするの?とか聞きゃいいのにw
- 357 :名無し~3.EXE:2009/02/12(木) 19:53:58 ID:6AmfxfN0
- ADODB.Stream とかつかって、
Shift-JISに変換してバイトをチェック。
- 358 :名無し~3.EXE:2009/02/12(木) 20:11:14 ID:Qshlqz+a
- だめだめシフトJIS以外の文字が?に化けちゃう
- 359 :名無し~3.EXE:2009/02/12(木) 20:17:06 ID:6AmfxfN0
- ?は全角としてよいのでなくて?
- 360 :名無し~3.EXE:2009/02/12(木) 20:58:32 ID:Qshlqz+a
- ?が全角でよいのか?
- 361 :名無し~3.EXE:2009/02/12(木) 22:15:21 ID:yGo0O3rT
- 日中韓以外には半角文字しかないよ。全角なんて概念ない。
本格的に考えだしたら、ギリシャ文字やキリル文字はどっち
(現地では半角相当なわけだ)という問題にぶち当たるが。
- 362 :名無し~3.EXE:2009/02/12(木) 22:17:16 ID:14FRFwWR
- 残念!ここは日本でした!
- 363 :名無し~3.EXE:2009/02/12(木) 22:38:23 ID:6AmfxfN0
- >>357の方法での変換は、確かにShift_JISで当てはまらない文字は?になってしまう。
そもそもシフトJIS以外の文字の全角半角というのがいまいち微妙なのだが。
例えばどういう文字がどう判定されればいいの?
- 364 :名無し~3.EXE:2009/02/12(木) 22:43:48 ID:Qshlqz+a
- シフトJIS以外の文字と判定されればいいんじゃない?
- 365 :名無し~3.EXE:2009/02/13(金) 00:46:46 ID:GyB/HYmf
- 文字集合と文字符号化形式の区別から始めるのか
- 366 :名無し~3.EXE:2009/02/13(金) 01:01:42 ID:em1rkTtF
- 静聴、静聴、パチパチ
- 367 :名無し~3.EXE:2009/02/13(金) 15:27:59 ID:em1rkTtF
- どうぞ?
せいぜい蘊蓄を傾けてくだされ
- 368 :名無し~3.EXE:2009/02/13(金) 16:27:27 ID:TOy+BjMd
- 薀蓄は続けるんじゃないの?
耳を傾けるってこと?
- 369 :名無し~3.EXE:2009/02/13(金) 16:35:27 ID:em1rkTtF
- ぐぐれば?
- 370 :名無し~3.EXE:2009/02/15(日) 00:08:45 ID:Kr0N6mCn
- InputBox等でOKやキャンセルボタンを表示させないやり方ってありますか?
OKだけ表示とか。
PopUpメソッドだといろいろ表示ボタンがあるみたいですが、
非表示についてはなかったので。
- 371 :名無し~3.EXE:2009/02/15(日) 06:05:49 ID:N0kUIzB/
- windowのソフトAを画面上半分、ソフトBを画面半分に並べるというこ
とはできますか? たとえばエクセルとワードのときを例にプログラム例を
教えてもらえませんか?
- 372 :名無し~3.EXE:2009/02/15(日) 06:08:32 ID:s0W7pGqf
- 無いよ
欲しければ作るしかない
ScriptFormなどのGUIが作れるCOMでWSHから作るか
お望みのGUIダイアログを持つCOM自体を自作するかはお好みで
そもそもWSHは、目的ドンピシャのことをやるものではなく、
とりあえず結果的に目的が果たせれば良いって時に使う簡易言語なので
足りないならまだしも余分だというのは許容するのが筋ですよ
GUIにも拘って開発したいなら、まともな開発言語使うがよろし
- 373 :名無し~3.EXE:2009/02/15(日) 16:32:00 ID:G5QYYO1i
- >>371
タスクバーを右クリック→上下に並べて表示
106 KB
[ 2ちゃんねる 3億PV/日をささえる レンタルサーバー \877/2TB/100Mbps]
■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
WSH(・∀・)スレッド! Part 3 [プログラム]
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 05.0.7.8 2008/11/13 アクチョン仮面 ★
FOX ★ DSO(Dynamic Shared Object)