WSH(・∀・)スレッド! ..
[2ch|▼Menu]
175:デフォルトの名無しさん
05/03/26 14:25:44
>>173
同じ例に汁。

176:デフォルトの名無しさん
05/04/03 14:18:22
>>173
1年前の書き込みにレスしてどうする

177:デフォルトの名無しさん
05/04/03 14:19:04
アンカーミス>>733>>734

178:デフォルトの名無しさん
05/04/03 23:39:59
>177
いつへのアンカーなんだよw

179:デフォルトの名無しさん
05/04/04 08:56:57
このペースだと6年後くらいだな。

180:176
05/04/04 17:04:29
はずぃ>自分

181:デフォルトの名無しさん
05/04/05 23:58:34
取得した文字列の中身が全部 US ASCIIかどうかチェックしたいのですが、何かいい方法ないでしょうか?
CだとIsAscii()があるのですがWSHだとないので。。。。

182:デフォルトの名無しさん
05/04/06 13:13:55
>>181
アルファベットまたは数字、いくつかの記号
にマッチするか調べればいいんじゃない?

183:デフォルトの名無しさん
05/04/07 01:05:54
181だけど事故解決しました
面倒くさがらずに自分で作らないとだめだね
CHRつかうのとREGEXP使うのとどっちがパフォーマンスいいのかなあ
どぴゅ

184:デフォルトの名無しさん
05/04/09 00:02:19
 ( ゚д゚)ノ ハイ!質問です!

msgbox 2^64
を実行すると

1.84467440737096E+19
と表示されます。

15桁を超えるものは指数を使って表示されるようですが、整数で表示する事は出来ますか?




185:デフォルトの名無しさん
05/04/09 00:45:39
文字列に変換

186:184
05/04/09 00:50:30
>>185

文字列に変換は、Cstr() ですか?
Cstrは試して見ましたが、表示に変化はありませんでした。

それとも他の方法でしょうか?

187:デフォルトの名無しさん
05/04/09 01:43:09
多倍長整数使えよ

188:デフォルトの名無しさん
05/04/09 11:05:17
変換したら加工せにゃ

189:デフォルトの名無しさん
05/04/16 15:48:13
質問です。
あるフォルダ2つのファイルを比較します。
2つのフォルダの拡張子は例としてtxtとvbsです。
拡張子がちがう同じファイル名のファイルの
最終更新日時を比較します。ファイル名は大量の為特定できません。
比較してvbsのほうが日付が古ければ
エラーとしてテキストファイルに書き出す
という、vbsを作りたいのですがどなたかわかりますか?

190:デフォルトの名無しさん
05/04/16 16:23:36
>189
1.フォルダAとフォルダBがある。
  (フォルダAには拡張子vbsのファイルが、フォルダBには拡張子txtのファイルが入っている)
2.フォルダAからファイルをひとつ取り出す
3.フォルダBから拡張子を除いた部分の名前が同じファイルを探す
4.フォルダAとフォルダBのファイルの更新日時を比較して、
  フォルダAのファイルが古ければテキストファイルにエラーを出力。
5.フォルダAのファイルが無くなるまで2〜4を繰り返す

こういうフローでいいならできる。

191:デフォルトの名無しさん
05/04/16 17:52:35
>>190
できたら作ってくれませんか?m(__)m

192:デフォルトの名無しさん
05/04/16 17:56:50
>>191
逝ってよし。

193:デフォルトの名無しさん
05/04/16 21:48:46
            _,ノ‐''''''^^^¨¨¨⌒ ̄⌒^^''¬-、,_
        ._v-''¨`   .,,vー─-、    .,,vー─-、 .¨'ーu_
      _ノ'″     ./′    ¨┐ ./     ゙┐  .゙'┐
     ,/′      ./ ̄''''-¬,,,,__.ミ .i |,,,,___ ..)   ゙\
    ,/′     λ  |     ( ・ )| } .¨'ーu,,  |     \
   ./′      八,、-ミ.ノ‐''''''^^ ̄./¨レ       .人,_     ミ
  .,ノ′     ._ノU'   \_   ._,rlト冖へy   _/  ¨'‐u   .゙lr
 .,i′     /ー-v、.,,_   ¨^^¨´〔    〕.¨^^¨′  __.,、 ゙\.  {
 〕      ./′    .⌒'''''    \,,,,,,ノ′  v-ー'''¨ .λ  ゙┐ }    __________
 |      ノ  .λ──ー      }      __,,.,、v;(_)ー''  {..]  /
 |     :|   | |            .!      `         .}} < きがるにいってくれるなあ。
 }     .|   .U-:;:冖^ ̄       .|      ¨¨¨¨¨ ̄¨¨′ ミ}  \
 .|     .}       _,,,,,vvl''''¨¨|^^⌒|¨¨''''lvv,_         }     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ). .   〕    ,,、-v~|   .|   |   |   |''T^i-,,_      /
  .{     ). ., r'z::''''~゙(~~ ̄ ̄ ̄ ̄ ̄ ̄~~~`^^^^''''¬;;;_   ノ
   ミ.    `i,                         , `'' /
   ゙).    `i,                           .,ノ  λ
    \    },     ′               .  /   | |
     . \  \                   .  ,/     ∪
       (¨¨¨¨¨¨¨¨¨¨¨¨¨¨゙ソ冖干ア^^^^^^^^^^^^^r'′
      /~~~~~~~~i¬冖'''''7′   ∨¬ーーz─-―「\
     /     _ノ     厂¨丁¨¨フ    .ミ、    ゙\

194:デフォルトの名無しさん
05/04/17 16:22:30
質問です。
XPを使っているのですが、デスクトップからスタンバイに移行するのに
Dim objShell
Set objShell = WScript.CreateObject("Shell.Application")
objShell.Suspend
というコードを使えばできると書いてあったんですが、
スタンバイに移行できません。
このコードはXPでは使えないのでしょうか?


195:デフォルトの名無しさん
05/04/18 02:05:49
>>191
せっかくアルゴリズムまでは教えてくれてるんだからヘルプファイル読みながらでも
自分で作んなさいよ

196:191
05/04/20 11:13:48
行き詰まってつい・・・・。でも、なんとかできました。
190さん、ありがとう。

197:191
05/04/21 06:45:27
できたのですが、ファイルがたくさんある場合に今どれくらい
進んでいるのか進捗状況を表示させられたらいいと思っているのですが、
今何%進んでいるか(プログレスバー?)を表示させるには
どうすればいいですか?検索とかしてるんですが、みつかりません。
無理なんでしょうか?

198:デフォルトの名無しさん
05/04/21 07:12:56
>>197
プログレスバーは無理な希ガス

cscriptから起動させて、文字列出力させたら?

199:191
05/04/21 07:37:13
>198氏
朝早くありがとうございます。無理ですか・・・。
しかたないのであきらめます。

200:デフォルトの名無しさん
05/04/24 23:25:02
この文なんですが

mLocation = FindFromText( pos, html, "<td valign=""top""><strong>■", "</strong><br>", "" )
                                            ↑         ↑
矢印で示した部分のコンマに当てはまる文字列を変数posとhtmlにそれぞれ返すいうことですか?

201:デフォルトの名無しさん
05/04/24 23:53:46
>>200
書いたやつに聞けよ・・・


"<td valign=""top""><strong>■" と、 "</strong><br>" にはさまれている文字を
mLocation に返すみたいだが・・・

202:デフォルトの名無しさん
05/04/25 01:17:55
>201
そうだな
サンクス

203:デフォルトの名無しさん
05/05/08 14:40:39
すいません,VBScriptでレジストリ操作をしたいんですが,
あるレジストリキーが存在するかどうかを確認する方法はありますか?
RegReadで存在しない値を参照してエラーが出てしまうんですが
回避方法がわからないんです.

204:キー列挙ならWMIの方が楽だよ
05/05/08 15:02:33
>>203
On Error Resum Nextじゃダメ?

205:204
05/05/08 15:02:56
Resum→Resume

206:デフォルトの名無しさん
05/05/08 15:06:25
>>204
それはアレですよね,エラー無視.
最初はそれにしてたんですが
他の部分でエラー出たりすることもあるしどうかなぁ と.

というか,エラー無視で強引に進めるのって怖くありません?

207:デフォルトの名無しさん
05/05/08 15:09:39
ちなみにHTAを使って割りと複雑な操作をするんで
VBScript+HTAじゃないとダメっぽいです.

RegDeleteもサブキーがあるとエラーとかいう意味不明な仕様ですが
あれも何とかならんでしょうか。
今は oWsh.Run("reg delete "HKCR\.dat" /f) とこんな事をしてます.
でもreg.exeを使うと動作にタイムラグが・・・_| ̄|○

208:デフォルトの名無しさん
05/05/08 19:03:25
URLリンク(www.microsoft.com)


209:デフォルトの名無しさん
05/05/09 02:20:54
>>203
>>208 の手段でも良いし、条件分岐させれば良いだけじゃないのか。

210:デフォルトの名無しさん
05/05/09 03:00:18
>>208,209
そうですね,208ので全部消していくかな.
条件分岐っていうのは?
レジストリキーが存在するかどうかが調べられないのに
どう条件分岐させるんですか?

211:デフォルトの名無しさん
05/05/09 20:16:32
>>210
当初 >>203 で言っていた「あるレジストリキー」というのがいくらかでも
特定されたものであれば、レジストリキーの有無で条件分岐できるだろうと
いうこと。今回言っているように、どのようなキーが存在するかさえ不明で
あれば >>208 の示した手段がベター。

212:デフォルトの名無しさん
05/05/09 20:56:52
>206
エラーの出そうな操作の直後に
if err<>0 then
 〜
end if
でエラーの場合の動作を(msgboxとかexit doとか)。

213:デフォルトの名無しさん
05/05/09 23:32:34
>>211
すいません、レジストリキーの有無ってどうやって調べるんですか?

214:デフォルトの名無しさん
05/05/11 21:46:18
キーをオープンしてみれば分かる

215:デフォルトの名無しさん
05/05/11 21:46:36
>>213
そのくらい調べりゃすぐ分かるだろ
自分で調べろよ

216:デフォルトの名無しさん
05/05/14 10:59:37
すいません、キーはどうやってオープンすればいいのか…

217:デフォルトの名無しさん
05/05/14 18:33:51
キーを読み取ってみてエラーが発生したら分岐させる?

218:デフォルトの名無しさん
05/05/16 18:58:29
急速にスレの質が低下してまいりました

219:デフォルトの名無しさん
05/05/17 14:07:51
急速という割には、ペース遅すぎな希ガス

220:デフォルトの名無しさん
05/05/20 13:45:42
スレッドストッパーの俺様が来ましたよ

221:デフォルトの名無しさん
05/05/20 22:35:57
そこでスレッドリバイバーの漏れ様の登場ですよ

222:デフォルトの名無しさん
05/05/20 23:09:32
そこでハイパースレッディングな俺様の登場ですよ!!

223:デフォルトの名無しさん
05/05/23 01:18:56
おまいらちっとはwsh使へ

224:デフォルトの名無しさん
05/05/23 23:05:05
いやぷぅ(~o~)

225:デフォルトの名無しさん
05/05/24 23:12:11
バッチファイルと違って、タスクマネージャくらいからしか強制終了できないのが辛い。
あとは時間指定ぐらいですかね?
でも、環境によって実行時間が違ってくるから時間による終了は入れたくないなぁ。

226:デフォルトの名無しさん
05/05/25 02:25:23
バッチで強制終了させりゃいいじゃん。
バッチでできんことはWSHにやらせて。

227:デフォルトの名無しさん
05/05/25 19:59:47
向き不向きを考えて使えって事か。
そりゃそうか。

バッチファイルで何行も同じようなこと書きたくないなぁと思って
vbsならスマートかな、と思ってやってみたんですた。
まぁコマンドプログラム呼び出すたびにアクティブなウインドウがそっちに移るんで
それも困ってたトコなんでやっぱバッチのほうが向いてるかも

228:デフォルトの名無しさん
05/05/26 05:03:19
>225-227 cscript.exe もちゃんと使おうな

229:225=227
05/05/26 19:59:30
URLリンク(www.atmarkit.co.jp)
コマンドラインスクリプトのことかーーーー!!!
初めて知りました。
多謝でつ。


230:デフォルトの名無しさん
05/05/27 12:38:44
WSHは略だけど
CScriptも略してCSHとは言わんな

231:デフォルトの名無しさん
05/05/27 22:27:43
wshはwscript.exeの略じゃないし

232:デフォルトの名無しさん
05/06/01 13:26:13
JScriptでショートカットのファイルを吐き出したいです
どうすれば出来ますか?

233:デフォルトの名無しさん
05/06/01 14:11:25
>>232
URLリンク(www.microsoft.com)


234:デフォルトの名無しさん
05/06/01 15:51:26
>>233
ありがとう

235:デフォルトの名無しさん
05/06/01 18:24:40
一定の間隔をおいて標準入力をテキストファイルに出力するにはどーしたらいい?
おしえてー

236:デフォルトの名無しさん
05/06/01 22:30:52
>235
一定の間隔とは行間のことだと勝手に想像して書いてみる
んでもって言語の指定ないから勝手にJScript

var ROW_SPACES=1;
var a=WScript.StdIn.ReadAll().split("\r\n");
var f=new ActiveXObject("Scripting.FileSystemObject").CreateTextFile("outfile.txt");
for(var i=0;i<a.length;i++){
f.WriteLine(a[i]);
for(var c=0;c<ROW_SPACES;c++)f.WriteLine();
}
f.Close();


237:デフォルトの名無しさん
05/06/02 01:45:36
間隔っつったらやっぱ時間じゃねえの?

while (!WScript.StdIn.AtEndOfStream) {
WScript.StdOut.Write(WScript.StdIn.ReadAll());
WScript.Sleep(10000);
}



238:236
05/06/02 02:20:20
>237
標準入力→テキストファイル、ってあるから
多分行間じゃないかなあと予測した
逆なら劣化ページャみたいな物と予測したのだけど

あと StdIn.AtEndOfStream() は試したら
存在しないみたいでエラー出たから ReadAll()

239:デフォルトの名無しさん
05/06/02 03:24:38
時間だとすると標準入力をテキストファイルに出力するのに一定の間隔を空ける意味が良く分からん

240:236
05/06/02 15:24:26
>239
そう、私もそれが言いたかった、ごめん_| ̄|○

てか、StdIn.AtEndOfStream てプロパティだから
括弧付けると駄目なのね…逝って来る_| ̄|○

241:デフォルトの名無しさん
05/06/03 17:59:10
ひょっとしてこういうことがしたいのかも

do while True
do while (not WScript.StdIn.AtEndOfStream)
WScript.StdOut.Write(WScript.StdIn.ReadAll())
loop
WScript.Sleep(5000)
loop


242:デフォルトの名無しさん
05/06/05 17:59:02
>241
ReadAllなのにAtEndOfStreamを待つのか?

243:デフォルトの名無しさん
05/06/05 20:51:29
tail -f
みたいな動きをさせるためじゃないかな

244:デフォルトの名無しさん
05/06/10 09:57:18
「デヴァイスマネージャ」の
「USBルートハブ」を無効にして
再度,有効にするという操作を
WSH にしてみてください

245:デフォルトの名無しさん
05/06/10 12:35:24
msgbox "USBハブのコード抜け"
msgbox "抜いたらもう一回挿せ"


246:デフォルトの名無しさん
05/06/10 12:50:41
>>245
【ご主人様】メイドさんスクリプト【ご命令を】
スレリンク(tech板)


247:デフォルトの名無しさん
05/06/10 14:01:26
Private Sub Command1_Click()

Dim UsbSet As SWbemObjectSet
Dim Usb As SWbemObject
Dim Locator As SWbemLocator
Dim Service As SWbemServices
Dim MesStr As String

Set Locator = New WbemScripting.SWbemLocator
Set Service = Locator.ConnectServer
Set UsbSet = Service.ExecQuery("Select * From Win32_USBHub")

For Each Usb In UsbSet

MesStr = MesStr + "USBハブの名前:" + Usb.Description + vbCrLf + _
"USBハブのデバイスID:" + Usb.DeviceID + vbCrLf

Next

MsgBox "USBハブの情報です。" + vbCrLf + _
vbCrLf + MesStr + vbCrLf + "ですよ。"

Set UsbSet = Nothing
Set Usb = Nothing
Set Locator = Nothing
Set Service = Nothing

End Sub

248:デフォルトの名無しさん
05/06/10 14:03:22
Private Sub Command1_Click()

Dim UsbSet As SWbemObjectSet
Dim Usb As SWbemObject
Dim Locator As SWbemLocator
Dim Service As SWbemServices
Dim MesStr As String

Set Locator = New WbemScripting.SWbemLocator
Set Service = Locator.ConnectServer
Set UsbSet = Service.ExecQuery("Select * From Win32_USBController")

For Each Usb In UsbSet

MesStr = MesStr & Usb.Name & vbCrLf

Next

MsgBox "USBコントローラの一覧です。" & vbCrLf & _
vbCrLf & MesStr & vbCrLf & "ですよ。"

Set UsbSet = Nothing
Set Usb = Nothing
Set Service = Nothing
Set Locator = Nothing

End Sub

249:デフォルトの名無しさん
05/06/10 14:10:00
URLリンク(www.microsoft.com)


250:デフォルトの名無しさん
05/06/10 14:44:59
>>244
UWSC使ってみ

URLリンク(www.h7.dion.ne.jp)


251:デフォルトの名無しさん
05/06/15 10:03:13
ご存知の方いらしたらご指導お願い致します

var oShell = WScript.CreateObject("Shell.Application");
var oFolder = oShell.NameSpace("fURLリンク(192.168.*.**)保存/");

var desktop = oShell.NameSpace(0);
var objFolderItems = desktop.Items();
for(var i = 0; i < objFolderItems.Count; i++) {
var ofitem = objFolderItems.Item(i);
if(ofitem.Name == "日報.xls") {
oFolder.CopyHere(ofitem);
WScript.Sleep(6000);
break;
}
}

日報.xlsをサーバーにFTPを使ってコピーするプログラムを作成しました
前日の同名ファイルに上書きして毎日保存しているのですが
ファイルの上書き確認ダイアログが出てしまうの非表示にして自動的に
上書きしたいのですが、よろしくお願い致します。

252:デフォルトの名無しさん
05/06/15 10:17:31
ふつうにftpコマンド使った方がよくね?

253:デフォルトの名無しさん
05/06/15 10:47:54
>>252
というと確認ダイアログをちゃんと出したほうが良いということでしょうか?
一応、転送終了後にファイルの更新日時や内容を軽くchkしていますので
サーバー側で定期的に別フォルダにバックアップしているので、間違いで
上書きしてもとりあえず問題ないのです


objFolder.CopyHere vItem, [vOptions]
FOF_NOCONFIRMATION 0x0010 上書きしますかとか聞いてこなくなる

oFolder.CopyHere(ofitem, 0x0010);
oFolder.CopyHere(ofitem , 0x0010);
こんなのを見つけて直してみても直りませんね

254:252
05/06/15 11:35:37
>>253
いあ、ftpでファイルをアップするだけの用途なら、
-sオプション付けて、動作指定したファイル記述するだけで良さそうだなー

と思っただけ

255:デフォルトの名無しさん
05/06/15 12:30:00
なるほどそういう事でしたか、コマンドプロンプトでやるのでしょうか
wshで記述できるのでしょうか?
勉強不足でして、バッチファイルの作り方も危ういので
>>251
で晒したソースもよそ様のサンプルを使って作成したので理解度0に近いのです

256:デフォルトの名無しさん
05/06/15 13:08:51
コマンドプロンプトでもwshでも可能

ftpの-sオプションについては↓みれば大体分かると思う
URLリンク(www.atmarkit.co.jp)

257:デフォルトの名無しさん
05/06/15 20:02:10
その前に、ftpコマンドの成功、失敗の判定をスクリプトやバッチファイルでできるのか?

258:デフォルトの名無しさん
05/06/15 20:20:50
もう一回アクセスしてファイルの日付がアップロードした日時になってるかとか
サイズがローカルのものと同じになっているかとかをチェックすれば出来なくはない

259:251
05/06/16 10:07:09
報告遅くなりまして申し訳御座いません
それと皆様に助言頂き感謝しております。
ftpの-sオプションについて教えて頂いたサイトを目下勉強中ですが
構文エラーが出てしまいうまくいかない状況です。しばらくサンプルを
作成して試してみますので、どうしても分からなかったら又ご助言を
よろしく御願い致します



260:デフォルトの名無しさん
05/06/16 14:20:45
おしごとでWSH使ってるんですが、
WSHのファイルインクルードって vbs しかインクルードできんのですか?

<script langage=VBScript src="aaaaaaa.vbs"/>

これでWSHスクリプトをインクルードしようとすると最初のJOBタグでエラーになってこのやろうちくしょう。

vbsでファイルインクルードがあればいいんですが・・・。

261:デフォルトの名無しさん
05/06/16 18:48:58
langage

262:デフォルトの名無しさん
05/06/16 18:58:11
で、vbsのインクルードはできたのか?
日本語で質問してくれると助かる。

263:デフォルトの名無しさん
05/06/16 19:19:11
JScriptはほぼ同じ方法で取り込める
だがwsfを取り込むってのは出来ないハズ

wsfにコードを書くと再利用するときに困るから
私の場合、コードは全てvbsに書き、wsfは取り込むのみで使う

264:260
05/06/16 23:55:51
>>261
ちょっとあせってたのさ。

>>262
おいっす。落ち着きます。で。対象のvbsファイルをFileSystemObjectで開いて、
ReadAllメソッド使ってソースをひとつの変数に突っ込んでExecute関数で実行っていう方法なら見つかった。
vbsには正式なインクルードはないみたい。wsfにはあるけど。

↓詳しくは見てください。
URLリンク(www.trickpalace.net)

>>263
やっぱりそうなるのね orz
再利用できる共通コードの中で、別の共通コード使いたい場合で困りますよね。

265:デフォルトの名無しさん
05/06/17 05:46:46
まずはここの情報は全て押さえとくとヨロシ。
MS社員の有志というか暇というか。一応純正だからw
URLリンク(groups.msn.com)
FAQやDOWNLOADに情報満載。

266:デフォルトの名無しさん
05/06/17 13:24:19
>>265
Σ(゚д゚lll)ズガーン。英語!?www
(´∀`;)ゝいやぁ。漏れ純正の日本人だから英語ダメスwww

と思ったけど、FAQはクリックすればサンプルコード出てくるだけだからわかりやすいね。アリガタス

267:デフォルトの名無しさん
05/07/18 02:39:27
ホス

268:デフォルトの名無しさん
05/07/20 01:42:04
ホシュホシュ

269:デフォルトの名無しさん
05/07/25 22:41:51
ホシュホシュ

270:デフォルトの名無しさん
05/07/27 16:45:29
Windows2000にて
WSH使って、タスクスケジューラへ
自動的にタスクを追加するには
どうすればいいか御存知の方いますか?

昔、どこかで出来るような発言してる人がいたので
結構ググッたけど、見つからなかった・・・


271:デフォルトの名無しさん
05/07/27 17:22:24
XPだったらschtasks使えば楽そう
Win32_ScheduledJobはATコマンドと同等だったはずだし、

IScheduledWorkItemとかITaskScheduler辺りを使えばどーだろ・・・

272:270
05/07/28 15:13:25
>271

調べてみたけど、使い方よくわかんなかったので
ATコマンドで妥協しました。('A`)

XPはschtasksがあるからいいですね。


273:デフォルトの名無しさん
05/07/28 15:29:52
ATコマンドってモデムのアレですか?

274:デフォルトの名無しさん
05/07/28 15:36:55
>>273
釣りなのか、マジなのか、なんかの揚げ足取りなのか知らないけど

コマンドプロンプト開いて、「at /?」と入力してみれ

275:デフォルトの名無しさん
05/07/28 15:41:41
ああ、UNIXのat相当なんですね。大文字で書かれると分からんもんですね。

276:デフォルトの名無しさん
05/07/28 15:55:30
>>274
いや、モデムの方だろ

277:デフォルトの名無しさん
05/07/29 02:35:30
schtasksはユーザー権限でログオンしている時
管理者アカウントでタスクを実行しようとしても
拒絶されるから嫌いだ。

そのくせ10回に1回うまくいったりするあたり、
単なるバグなんじゃねぇかと。

278:デフォルトの名無しさん
05/07/31 12:46:54
>>277

うほっタイムリーなネタ
だから実行できなかったのか!
なんかいい解決方法ないのかな。
XPでATコマンドってまだ使えたっけ?

279:デフォルトの名無しさん
05/07/31 14:39:24
>>278
そう実行できない。
2002年から2003年にかけて死ぬほど検証したし
海外までググったしMSプレミアムサポートに問い合わせもした。
結局使えそうで使えないコマンドなんだわ。<schtasks

XPでもATコマンドは使える。
ただ管理者アカウントでログオンしてないと
コマンドが受け付けられないので注意。
これはNT4時代からずっとそうなので諦めるしかない。
管理者アカウントでログオンするなら
schtasksだって使えるんだよね。。。

> なんかいい解決方法ないのかな。

これまで携わったプロジェクトでは
配布ソリューション(SMSやその類似品)を使って
バッチを配布して管理者権限でキックしたり、
管理端末から(ドメインAdminでログオン)から
目的の端末にリモート実行させたりしてた。
あとはスタートアップスクリプトに仕掛けたりとかそういう感じ。

あとはサーバーに「特定のテキストファイルがあれば
ファイル名と同名のユーザーの端末上でコマンド実行」
という趣旨の定期監視タスクを仕掛けておいて、
ユーザーがバッチを起動すると、
サーバー側で監視してるフォルダに
テキストファイルが作られるみたいな構成とか。
わずかな事やるのに結構遠回りしてるなぁ。orz

280:デフォルトの名無しさん
05/07/31 16:07:05
>>279
>海外までググったし
そうか。プログラミングのノウハウは国内にはあまり無いから
ググる時にも必ず「ウェブ全体」を選んでたけど
まだそういう時代じゃないんだな

281:デフォルトの名無しさん
05/07/31 16:26:33
>>280
や、失礼。
ググった結果(主に英語サイト)から
海外サイトを延々見てまわり、の方が正確。
お詫びして訂正します。ゴメンチャイ。

どうでもいいがヘブライ語みたいなサイトも見たよ。
チンプンカンプンだっつーの。

282:デフォルトの名無しさん
05/08/04 22:35:08
(・∀・)アゲ!!

283:デフォルトの名無しさん
05/08/06 22:53:34
WSHで起動中の特定の名前のウィンドウの
存在の有無を確認する方法ってありますか?

284:デフォルトの名無しさん
05/08/07 09:40:02
>>283
WMIでWin32_Processをクエリーするしかないんじゃねーの?
でもこの方法、WindowsXP以外はWMICoreのインスコが必要だったと思うが。

285:283
05/08/07 13:10:15
>>284
レスありがとうございます。自己解決しました。
VBScriptのappactivate("ウィンドウ名")=Falseで
判定することができました。

286:デフォルトの名無しさん
05/08/08 14:53:27
リンクリストみたいなコレクションありませんか?
ハッシュ(Scripting.Dictionary)と配列はあったのですが・・・。

やりたいことは、文字列をコレクションに溜め込んで、最後にJoinで一つの文字列にしたいのですが、
ハッシュだと溜め込むことはできそうですが、最後にJoinしたときに順番がバラバラになりそうで利用できません。

要素の追加にコストが掛からず、最後に文字列結合できるコレクションなどはないでしょうか。


287:デフォルトの名無しさん
05/08/08 16:55:07
>>286
Arrayではコストがかかりすぎるのでしょうか。

288:デフォルトの名無しさん
05/08/08 17:53:42
>>286
そりゃあデータ構造を考えれば普通に不可能だろう。

289:デフォルトの名無しさん
05/08/16 20:39:16
みんなデバッグ環境はナニを使ってる?

290:デフォルトの名無しさん
05/08/16 21:56:50
jsファイル ダブルクリックして
テキストファイル出力で変数の値みる

291:デフォルトの名無しさん
05/08/21 01:11:37

var WShell = new ActiveXObject("WScript.Shell");
WShell.Run("c:\\******\\hoge.exe");
のように実行ファイルを動かし、hoge.exeからJScriptの変数に何らかの値を代入することは可能でしょうか?

292:デフォルトの名無しさん
05/08/22 13:25:15
>>291
こんな感じでしょうか。
この例ではHello, world!の後の改行までsに代入されてしまってますが。

----------
D:\>type hello.js
print("Hello, world!");

D:\>type hello2.js
var WshShell = new ActiveXObject("WScript.Shell");
var oExec = WshShell.Exec("d:\\hello.exe");
var s = oExec.StdOut.ReadAll();
WScript.StdOut.Write("[" + s + "]");

D:\>jsc /nologo hello.js

D:\>hello.exe
Hello, world!

D:\>cscript //nologo hello2.js
[Hello, world!
]

D:\>
----------

293:デフォルトの名無しさん
05/08/22 13:49:53
>>289
//X オプション + VSでデバグ。

294:291
05/08/24 16:04:26
>>292
ありがとうございます。
解決しました。

295:286
05/08/30 16:39:36
>>287-288
レスありがとう。

やりたいことは Java のStringWriterクラスでしたが、
writeメソッドで受け取った文字列を溜め込んで、
toStringメソッドで結合して返すってことをやりたかったのです。

それで実際に Scripting.Dictionary で、試してみたら
Joinしたときに順番がバラバラになるかと思ったんですが、
追加した順番に文字列が結合されたので大丈夫でした。

なんかラッキーでした。ありがとう。

296:デフォルトの名無しさん
05/09/05 12:59:10
vbsやりはじめて3日目です
Subプロシージャに引数としてオブジェクトを渡したいのですが
渡されたオブジェクトのプロパティをSubプロシージャ内で参照しようとすると
オブジェクトがありませんと言われます
ぐぐってもVBの事例はいくつか出てきたのですがVBSの事例は見つけられませんでした
どのようにしたらいいんでしょう

297:デフォルトの名無しさん
05/09/05 19:38:27
>>296
書け

298:名無しさん@そうだ選挙に行こう
05/09/11 00:41:35
>>11 >>12 >>16 おそらく、↓のスレのことだと思われ。

// Windows Script Host を使い尽くす //
URLリンク(pc3.2ch.net)

299:デフォルトの名無しさん
05/09/12 20:52:33
win板のwsh スレはどこ?

300:デフォルトの名無しさん
05/09/12 22:31:35
落ちたみたいね

301:デフォルトの名無しさん
05/09/13 00:27:09
おいっす。了解っす。

302:1/2
05/09/15 23:43:08
どなたかお知恵をお貸しください。

あるテーブルの抽出結果を、ADODB.Recordset.GetStringで文字列にする関数 strResults を、
VBSから呼び出してテキストファイルに保存しようとしました。

Dim sFS, strParam, oTS, strResultText, intResultLetters, i

strParam = WScript.Arguments(0)
strResultFName = WScript.Arguments(1)

Set appAc = CreateObject("Access.Application")
appAc.OpenCurrentDatabase "V:\・・・\GrepRecordsets.mdb"
strResultText = appAc.Run("strResults", strParam)
Set appAc = Nothing

Set sFS = CreateObject("Scripting.FileSystemObject")

Set oTS = sFS.CreateTextFile("V:\・・・\result.txt", True)
oTS.WriteLine "MS Access ファイルからの検索結果"

intResultLetters = Len(strResultText)
For i=100 To intResultLetters Step 100     ' デバッグのため分割して書き込む
    MsgBox Left(strResultText,100)        ' デバッグのための内容表示
    oTS.Write Left(strResultText,100)
    strResultText = Right(strResultText,intResultLetters - i)
Next

303:デフォルトの名無しさん
05/09/15 23:43:34
ここで、ある特定の文字が、MsgBoxでは表示されるものの、
書き込もうとした時点でコンソール上に以下のエラーが出てしまいます。

    Microsoft VBScript 実行時エラー: プロシージャの呼び出し、または引数が不正です。

その文字とは、中華料理店の店名らしいのですが、

         火     日    金
      火火  日日  金金

テキストエディタ等で見ると ?晶? となりますが、MS Wordなどで見ると上記のような文字です。


このため、文字コード変換で改善するかと思い、nkfwin.exe なるツールではどうかとやってみたところ、
上記の文字を含むテキストファイルを nkfwin.exe の引数に指定したところ、
    ┌────────────┐
    │16 ビット MS-DOS サブシステム                   ×│
    ├────────────┤
    │      C:\WINNT\System32\cmd.exe -
    │      V:\・・・\nkfwin.exe
    │ ×  -s -I TestKanji.txt
    │      NTVDM CPU は不正な命令を検出しました。
    │      CS:0000 IP:e2d7 OP:00 00 00 00
    │    
    │        [ 強制終了(T) ]    [ 無視(I) ]
    └────────────┘
となってしまいました。

このような現象は、どう対処したらよいのでしょうか?
お教えいただけますと大変助かります。

OS : Windows NT 4.0    Access 2000, ADO 2.6, WSH 5.6

304:デフォルトの名無しさん
05/09/16 05:08:50
>Set oTS = sFS.CreateTextFile("V:\・・・\result.txt", True)

ここを

Set oTS = sFS.CreateTextFile("V:\・・・\result.txt", True, True)

にしたんじゃダメか?
出力内容がUNICODEになっちまうけど。
(SJISには無い文字コードみたいだからそうするしかないんだけどね。)

305:デフォルトの名無しさん
05/09/16 09:06:23
>>304
ありがとうございます!
あっさり出力できました!
大変助かりました。m(_ _)m

306:デフォルトの名無しさん
05/09/16 20:27:56
ユニコードの28977 焱 、
ユニコードの37995 鑫 と判明しました。
これらの文字を取り除いてメールで送れるテキストにする方法を探し中です。

307:デフォルトの名無しさん
05/09/16 23:13:23
報告です。
まず unicodeテキストとして保存し、
その後 フリーソフトの cherset converter で
→ ISO-2022-JP → Shift_JIS
で出来ました。
2段階でやったところ、通常 ? で置き換わるところ _ で置き換わっていました。
ありがとうございました。。

308:デフォルトの名無しさん
05/09/28 18:18:34
ここで聞くのが正しいのかも少々不安ですが
質問させてください。

前提:
プログラミングは大昔に20年ほど前にFORTRANいじったことがありますが
中途半端だった上にその後すっかりで、基本的に知識ゼロです。

要望:
・下記の事がWSHで実行可能か知りたい
・可能な場合は参考になるスレはどこにあるのか知りたい
・ヒントになるようなスクリプトがあれば手に入れたい

やりたいこと:
(WindowsXP上で動いているアプリケーションに対してです)

起動
1.任意の座標(固定)のcolorをチェックする
2.任意のcolorではない(または任意のcolorである)場合に
3.任意の座標をマウス(右)クリック(相当の信号?コマンド?送出)
終了までループ

座標系はやったことがないのでまるでわかりません。
ヒントを頂いて勉強もしたいのですがちょっと差し迫った事情が
あって時間もないので、どなたかお教えいただければ幸いです。

そんなのプログラム組めば簡単簡単・・・などとできもしないのに
大見得切るんじゃなかった。。。^^;

よろしくお願いします。

309:デフォルトの名無しさん
05/09/28 18:48:01
無理…だと思う。

310:デフォルトの名無しさん
05/09/28 21:37:52
>>308
俺もWSHじゃ無理だと思う。
Win32系のスレでAPIの使い方を訊きながら、C言語でコンソールアプリとして作ればそんなには難しくないと思うよ。
C言語のコンパイラは Borland C++ Compiler とか Microsoft Visual C++ toolkit 2003 とか無料のがあるからそれを使いね。
( Microsoft Visual C++ toolkit 2003 は別途PlatformSDKも入手しなきゃならんから Borland のほうが手軽かな? )

311:デフォルトの名無しさん
05/09/28 21:42:27
宿題スレでやってもらうのがいいかも。

312:デフォルトの名無しさん
05/09/29 10:15:43
>>309
>>310
>>310
ありがとうございます。

そもそもWSHでは無理がありそうなのですね。
宿題スレも見てみます。


313:デフォルトの名無しさん
05/09/30 10:41:25
UWSCならデフォで出来るし
UWSC内でVBSとか使えるけどね

314:デフォルトの名無しさん
05/10/04 11:14:28
ネットワーク上にある約200台の端末の指定ファイルの最終更新日を一気に取得したいんですが、
電源が入っていない端末にアクセスすると処理が遅くなってしまいます。


315:デフォルトの名無しさん
05/10/04 11:38:29
そうですか

316:デフォルトの名無しさん
05/10/04 12:25:53
そうなんです

317:デフォルトの名無しさん
05/10/04 12:41:18
じゃあ電源が入ってるかどうか管理しておけばいいじゃない

318:デフォルトの名無しさん
05/10/04 14:16:06
そうですか?

319:デフォルトの名無しさん
05/10/04 21:22:51
このスクリプト簡単でおもしろいね。
知らない人に時間が来たらメモ帳開いて1秒間隔くらいで
「お・ま・え・は・明・日・死・ぬ」とか書いちゃったりして
おもしろーいw
きゃははw

320:デフォルトの名無しさん
05/10/04 23:12:28
そうですか

321:デフォルトの名無しさん
05/10/04 23:32:54
>>320
そんな素っ気ないレスじゃなくて、友人がいないに違いない >>319 に仲良くしてやれよ。
俺はくっだらなくも陰湿な >>319 なんか、まっぴらごめんだけどなw

322:デフォルトの名無しさん
05/10/05 00:34:44
そうだな

323:デフォルトの名無しさん
05/10/13 22:26:58
ネットワーク上の別のPCのデスクトップにメモ帳を立ち上げる
なんてこと、出来るのでしょうか?


324:デフォルトの名無しさん
05/10/13 23:17:10

>>323はマルチなので、以後放置で

お前ら、wsh使ってますか? part5
スレリンク(win板:73番)



325:デフォルトの名無しさん
05/10/14 14:05:25
>>323
NET SEND OtherPC メモ帳起動して

326:デフォルトの名無しさん
05/10/14 15:13:14
>>325
それいいな

327:デフォルトの名無しさん
05/10/14 22:52:22
>>323
\\自分のPC
\\相手のPC
\\相手のPC 上で、\\自分のPC の任意のフォルダを監視させるスクリプトaaa.vbs
を起動させておく。
もし、\\自分のPCに上の任意のフォルダに、メモ帳起動.txt というファイルが作られたら、
そのファイルを削除して、\\相手のPC上で、Wscript.Shell.Run "Notepad"を実行する。

というのが、一般的だが?


328:323
05/10/15 00:26:27
>>327
レスありがとでげす。
教えてくださった方法では、
別のイベント(別動作)をトリガーとして持たなくてはいけない点と、
\\相手のPC上でaaa.vbsを実行しなくてはいけない点
が不満です。
上の2点を回避する方法はないのでしょうか?


329:デフォルトの名無しさん
05/10/15 01:33:37
\\相手のPC上でbbb.vbsを実行すればいいと思うよ。

ってゆうかさー、その程度の応用もできないわけ?

330:デフォルトの名無しさん
05/10/15 08:29:52
schtasksとかatとか使えばいいだけのような

331:デフォルトの名無しさん
05/10/15 12:32:19
使い方が解りませんとか言い出してきそうな悪寒

332:デフォルトの名無しさん
05/10/15 22:42:07
スタートアップファイルに、aaa.vbs のショートカットファイルを入れておいても良いレベルでは?

結局、323の使用目的によって回答のレベルも可変なんだと思う。
さあ、話してごらん、使用目的を。

333:デフォルトの名無しさん
05/10/15 23:00:55
おまいら、マルチなので、以後放置ではなかったのか?


334:323
05/10/16 08:16:34
>>332
使用目的というわけではありませんが、
単純にメッセージを送信できれば問題ないです。
できれば日本語(2byte文字を)
XPとWin98SEでも使える方法を伝授くださいませ。


335:デフォルトの名無しさん
05/10/16 11:05:19
要するに、作って欲しいわけだ

336:デフォルトの名無しさん
05/10/16 15:00:36
NT系ならメッセージを送る方法があったはずだが…。WSHから使えるのかは知らないけど。

337:323
05/10/16 15:14:57
>>335
バレた!!

338:デフォルトの名無しさん
05/10/16 15:24:40
>>323
>>325

339:323
05/10/16 15:27:41
>>338
net send って、Win98でも使えるの?

340:デフォルトの名無しさん
05/10/16 16:01:55
なんだとこの野郎

341:デフォルトの名無しさん
05/10/16 17:00:02
>>339
一応、NT 系の net send と Win9x 系の winpopup は、
相互に送受信できる。
ただし、winpopup をスクリプトから制御できるかどうかは
知らん。

342:323
05/10/16 17:21:22
結局、相手PCがWin98系のときは、
\\相手のPC上でaaa.vbs or bbb.vbsを実行しなくてはいけない
ということですか。。。

343:デフォルトの名無しさん
05/10/16 17:29:34
>342
自分のPCがNT系ならnet sendで送信すれば、
相手が98系ならwinpopupで受信してくれるんじゃないの。

344:323
05/10/16 17:49:18
>>343
winpopupを立ち上げるのに、aaa.vbs or bbb.vbsが必要ということでは。。。?

345:デフォルトの名無しさん
05/10/16 18:01:48
ヒント: スタートアップ (+ 必要なら、自動ログイン)

346:323
05/10/16 18:24:06
>>345
つまり、\\相手のPCにいちいち細工をしなくてはいけないということが
私のやりたい事には入ってないわけで。。。


347:デフォルトの名無しさん
05/10/16 18:36:53


348:デフォルトの名無しさん
05/10/16 18:38:37
結局何が目的なんだといいたくなるな

349:デフォルトの名無しさん
05/10/16 18:38:41
なんの設定もなく相手先のPCを操作できることを
専門用語でセキュリティーホールと言う

350:323
05/10/16 18:45:03
>>348
わかりずらい話につき合わせてしまって、ごめんなさい。

>>349
つまるところ、そういうことなんですね。
せきゅりてぇいがあるのはいかしかたないことですから、あきらめます。

最期に、もうひとつ。
\\自分のPC の任意のフォルダを監視させるスクリプト
(もし、\\自分のPCに上の任意のフォルダに、メモ帳起動.txt というファイルが作られたら、
そのファイルを削除して、)
はどのように記述すればよいのですか?
スマートな方法を教えてもらえませんか?


351:デフォルトの名無しさん
05/10/16 18:51:20
>>350
スマートな方法なんて、無理に決まってんだろ

352:デフォルトの名無しさん
05/10/16 19:17:25
>>350

>>348
>>325

353:デフォルトの名無しさん
05/10/16 19:52:21
>>350
while(true)
{
 if( ファイルオブジェクトか何か.IsExist ) 処理;
 Sleep(何秒か);
}


354:デフォルトの名無しさん
05/10/16 19:55:09
>350
相手側に何か仕込むなら、Winpopupをスタートアップに登録するだけの方が無難だと思われ。

355:323
05/10/16 23:05:51
みなさん、どうもありがとう。
>>354
相手側のPCが遠くて、私が直接作業出来ないんですぅ。
ついでに、驚かせたいってのもあるから、相手にやってもらうのも。。。ねぇ。
っていう理由なんですよ。。。


356:デフォルトの名無しさん
05/10/16 23:09:54
出来ないんですぅ。じゃねえよクソがッ!!!!!!
失せろこの頓馬!!!!!!!!!!!!!

357:デフォルトの名無しさん
05/10/16 23:25:08
>>356
kawaisouni...

358:デフォルトの名無しさん
05/10/17 00:59:54
> 驚かせたいってのもあるから、相手にやってもらうのも。。。ねぇ。
本当は何らかの不正行為をやるつもりだろ
そういうことをやろうとしてるけど、自分でやるだけの知識が無い奴は
決まって「驚かせるだけ」とか「ジョークソフトを作るのに」とか言い訳して
やり方を聞いてくる

どうせ口先だけじゃ如何様にも言い逃れは出来るけどね

359:デフォルトの名無しさん
05/10/17 01:23:03
スマートというか本当はコマンドライン一行でやる方法あるんだけどね。
何かマルチポストっぽいしクラッキングの片棒担ぐのも嫌なんで自分で調べな。

360:デフォルトの名無しさん
05/10/17 03:08:44
スタートアップやタスク、netsend などを使うことなく、同じドメインに属している
リモートクライアントで notepad.exe のプロセスを走らせるスマートな手段は実際、
あるにはある。でもなぁ、>>323 の目論んでいることが今一つ抽象的かつくだらない
目的のように思えてならないんだよな。結局何をしたいのよ?>>323

361:デフォルトの名無しさん
05/10/17 07:25:25
もういい加減スルー

362:デフォルトの名無しさん
05/10/17 15:05:22
すいません初歩的すぎて申し訳ないんですが、次のサンプルスクリプトをWSHへ書き換えたいんですが
パラーメータの渡し方がわかりません。
どなたか教えてください。

<object ID=NetMeeting CLASSID="CLSID:3E9BAF2D-7A79-11d2-9334-0000F875AE17">
<PARAM NAME = "MODE" VALUE = "DataOnly">
</object>
 
 ↓

Set NWobj = createobject("Netmeeting.App")


363:デフォルトの名無しさん
05/10/17 21:57:33
ほう。マルチですか。

364:デフォルトの名無しさん
05/10/18 00:05:36
>>359、360
323はWin98でやりたいと言ってるように見えるが?

365:デフォルトの名無しさん
05/10/18 09:46:45
糞ノートン先生を強制的に黙らせる方法はありませんか?
友達にVBScript渡したら悪質なScript扱いされて実行止められた('A`)

366:デフォルトの名無しさん
05/10/18 11:20:37
良質なScriptはScriptBlockerを強制Offにしたりしません。

367:デフォルトの名無しさん
05/10/18 13:20:58
ワロタ

368:デフォルトの名無しさん
05/10/18 21:49:41
つーか最近無駄にセキュリティが高すぎる気がする。
そりゃ便利に何でも動くようにしたら、セキュリティに興味ない人が
どんどんウィルス感染するのは分かるんだけどさ。
最近のIEとか全然Script動かないじゃん。
ScriptどころかSVGとかも見れないし。
PC使えない人の問題を自動的に修復できるようにScript渡したいのに
Scriptも動かない動かせないんじゃどうしようもないですがな。

369:デフォルトの名無しさん
05/10/19 00:20:57
>>359
お〜、それはすげーな。

でも、それって君の PC のセキュリティが低いだけだと
公言してるも同然で、アフォ丸出しだから止めたほうが
いいよ。

370:デフォルトの名無しさん
05/10/19 00:29:13
そうだそうだ

371:デフォルトの名無しさん
05/10/19 00:31:54
>>369
もちろんアカウントとパスワードは必要ですってば

372:デフォルトの名無しさん
05/10/19 00:37:46
>>371
( ̄ー ̄)ニヤリッ

373:デフォルトの名無しさん
05/10/19 00:54:35
>368
最近のPCならリモートデスクトップとかあるじゃん。

374:デフォルトの名無しさん
05/10/19 08:30:15
>>368
>Scriptも動かない動かせないんじゃどうしようもないですがな。

Nortonがブロックするなら許可すればいいだけじゃね
単に動くスクリプトをあなたが書けないだけでは?と煽ってみる
IEだって設定の問題でしょ

375:デフォルトの名無しさん
05/10/19 22:04:59
>>374
自分自身はちゃんと設定してるから動くよ。
他人に渡したときに動かないのが困る。
それも、「○○が動かなくなったから何とかしてくれ」
というのでScriptでファイル操作して自動的に解決するようにして送ったら
 ・メールから勝手に削除された
 ・なんとか受け取ったScriptは実行不能
  (ノートンが止めているらしい)
 ・ノートンの設定は弄れない
とのことで結局どうしようもなくなった。

まぁScriptは自分の為に使うものってことなのかね?

376:デフォルトの名無しさん
05/10/19 23:17:44
>>375
見る限り全てノートンの所為



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4306日前に更新/212 KB
担当:undef