[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 16:53 / Filesize : 191 KB / Number-of Response : 882
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

WSH(・∀・)スレッド! Part 3



1 名前:デフォルトの名無しさん [2008/04/23(水) 20:00:50 ]
( ´ゝ`) 誰か詳しい情報キボンヌ

●過去スレ
WSH(・∀・)スレッド!
pc11.2ch.net/test/read.cgi/tech/1055075469/
WSH(・∀・)スレッド! Part 2
pc11.2ch.net/test/read.cgi/tech/1176698934/

●関連スレ
お前ら、wsh使ってますか? Part7
pc11.2ch.net/test/read.cgi/win/1190548945/
HTAをもっと流行らせる計画
pc11.2ch.net/test/read.cgi/tech/1124559962/
★WSHでCGI★JScriptVBScript
pc11.2ch.net/test/read.cgi/php/1059745064/

●公式サイト
Windows Script
www.microsoft.com/japan/msdn/scripting/

●個人サイト
Windows Scripting Host
homepage3.nifty.com/aya_js/wsh/index.htm
Windows Scripting Host Laboratory
www.roy.hi-ho.ne.jp/mutaguchi/wsh/
Windows Script Wiki
winscript.s41.xrea.com/wiki/index.php

799 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 17:58:52 ]
データに対するショートカットって使わないな。
ハードリンク使うし。

800 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 18:10:22 ]
うん。ランチャとジャンクション使うよ普通は

801 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 18:52:59 ]
.wshのショートカットって使わないな。
.lnkのショートカット使うし。


802 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 18:54:51 ]
WSHって使わないな。
PowerShell使うし。

803 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 19:37:41 ]
PowerShellって使わないな。
AppleScript使うし。

804 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 19:56:04 ]
> AppleScript
どこら辺を笑えばいいの?

805 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 20:21:43 ]
あまりの滑りっぷりの寒さ

806 名前:デフォルトの名無しさん [2009/03/21(土) 11:46:27 ]
#!/bin/bash
hostname
who is god
hostname | sed 's/^[^\.]*\.//'

# VBSでやるとしたら
#Option Explicit
#
#Dim WSHNetwork
#Set WSHNetwork = WScript.Createobject("WScript.Network")
#
#WScript.Echo "ドメイン名  :" & WSHNetwork.UserDomain
#WScript.Echo "ユーザー名  :" & WSHNetwork.Username
#WScript.Echo "コンピューター:" & WSHNetwork.ComputerName


807 名前:デフォルトの名無しさん [2009/03/21(土) 11:47:47 ]
#!/bin/bash
sed 's/ようこそ/Welcome/g' youkoso.txt > welcome.txt

# VBSでやるとしたら
#Set fso = CreateObject("Scripting.FileSystemObject")
#Set regEx = New RegExp
#Set inFile = fso.OpenTextFile("C:\TechEzo\Round23.txt")
#Set outFile = fso.CreateTextFile("C:\TechEzo\Round23_2.txt")
#
#regEx.Pattern = "ようこそ"
#repStr = "Welcome"
#Do Until inFile.AtEndOfStream
# tempLine = inFile.ReadLine
# repLine = regEx.Replace(tempLine, repStr)
# outFile.WriteLine repLine
#Loop
#
#inFile.Close
#outFile.Close



808 名前:デフォルトの名無しさん [2009/03/21(土) 11:52:56 ]
MSがWSHを半ば見限ってPowerShellを開発したのは当然のこと。
上記二例からわかる通り、WSHでは
非開発者の管理者やエンドユーザには負担が大きくなるからだ。

809 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 13:13:07 ]
わかってないなぁ
M$は普通の人にPCを便利に使ってもらう必要はない
直感的に操作できるようにして便利だと錯覚させればOKだから

それに、一般人に簡便なスクリプト言語与えたら、簡単なツールで金取ってるような無能が失業するだろ
色んな意味で、馬鹿にはコンビューティングに目覚めないでもらったほうが都合がいいのさ

810 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 14:12:53 ]
PowerShellなら
(cat youkoso.txt) -replace "ようこそ","Welcome">welcome.txt
でいいんだもんな。リダイレクションだとUnicodeになっちゃうからOut-Fileを使う方がいいんだろけど。
WSHはエディタの補完機能がないと全く書く気になれない。

811 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 14:24:17 ]
> 上記二例からわかる通り
そんな不適切な例で、何が解るって言うつもりだ?

君がやってるのは、「四則演算は電卓の方が手軽だからPCはこの世に必要ないものです」と同じ事。
電卓側が手軽になる例だけ挙げて、その逆やましてや電卓で不可能なことには触れていない。

本気で書いてるなら「視野が狭い」と言うべきだが、きっと故意にやってるので「頭が悪い」と言った方が正しいな。

812 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 15:41:01 ]
> 上記二例からわかる通り
「頭が悪い」

813 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 15:47:49 ]
実にくだらない争いを見た。

814 名前:デフォルトの名無しさん [2009/03/21(土) 16:57:26 ]
PowerShellやbashより簡単になる例ってどんなのがあるの?

815 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 17:01:31 ]
すれ違い

816 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 17:02:57 ]
しつこい

817 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 19:00:47 ]
>>807
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile("C:\TechEzo\Round23_2.txt").Write Replace(fso.OpenTextFile("C:\TechEzo\Round23.txt").ReadAll,"ようこそ","Welcome")




818 名前:デフォルトの名無しさん [2009/03/21(土) 21:19:05 ]
>>817
それでもbashより面倒なのがイタいな

819 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 21:25:09 ]
そんなに行数、文字数減らしたかったら、
sed win32版を使えばいいだけ。あとはcygwinでも使え。
比較すること自体が嫌がらせ。荒らすなよ。

820 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 22:00:41 ]
>>818はsedをbashだと思ってるのかな?

821 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 22:05:54 ]
というか >>807 の「VBSでやるとしたら」のコードが面倒過ぎなだけだろうもん。

Set oShell = CreateObject("WScript.Shell")
oShell.Exec("cmd /c more > C:\TechEzo\Round23_2.txt").StdIn.Write _
sText = Replace(oShell.Exec("cmd /c type C:\TechEzo\Round23.txt").StdOut.ReadAll, "ようこそ", "Welcome")

822 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 22:06:54 ]
間違った・・・・。

Set oShell = CreateObject("WScript.Shell")
oShell.Exec("cmd /c more > C:\TechEzo\Round23_2.txt").StdIn.Write _
Replace(oShell.Exec("cmd /c type C:\TechEzo\Round23.txt").StdOut.ReadAll, "ようこそ", "Welcome")

823 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:11:20 ]
perl(Active) や PHPから使えばいいじゃん。

824 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 01:18:30 ]
@if(0)==(0) CScript.exe //NoLogo //E:JScript "%~f0" <youkoso.txt > welcome.txt & GOTO :EOF & @end
WScript.StdOut.Write(WScript.StdIn.ReadAll().replace(/ようこそ/g,"Welcome"));

825 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:22:35 ]
WSHでの正規表現の扱いは、確かに面倒ではある

826 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:45:23 ]
その代わりに柔軟だけどね

827 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 04:26:12 ]
> 上記二例からわかる通り
ほんとよく分かった。もっと勉強してから出直せよ



828 名前:ショートカット mailto:sage [2009/03/22(日) 14:16:58 ]
>>799
>>799

おーハードリンクいいですね

早速ショートカットをハードリンクに置き換えるスクリプトでも、、

と思ったんだけどひとつ素朴な疑問。

同じ内容の2ファイルが
ハードリンクなのか別コピーなのか識別する方法って
どうやるの?
(内容がFC /bとかで一致してるのがわかってるとして

829 名前:ショートカット mailto:sage [2009/03/22(日) 14:17:56 ]
さすがに
試しに片方のファイルに追記してみるとかはなしで

830 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 16:43:41 ]
ハードリンクの意味わかってるか?

831 名前:ショートカット mailto:sage [2009/03/22(日) 17:27:38 ]
>>830
その質問は本人に聞いても意味ないでしょ

832 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 17:28:07 ]
>>830
質問の意味わかってるか?


833 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 17:35:55 ]
fsutil objectid query ファイル名
の結果が一致したら実体が同一ってことのはず。

834 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 17:45:30 ]
リンクカウントは?

835 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 17:50:50 ]
カウントだけじゃ
・AとBが同一内容で実体が別
・それぞれA=A'とB=B'のハードリンクが存在する
というケースで誤認するはず

836 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 17:54:17 ]
そうじゃなくてリンクカウント調べるには?


837 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 18:14:17 ]
objectidが一致するファイル名を数える



838 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 18:15:18 ]
だからリンクカウントじゃハードリンクの存在しかわからないから
誤認する可能性があると言ってる。厳密にやる必要性については知らん。

839 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 00:11:43 ]
GetFileInformationByHandle()つかうみたいね

840 名前:618 mailto:sage [2009/03/23(月) 00:52:03 ]
>>836
「リンクカウント調べる の は?」
と空目してた。正直すまんかった

841 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:34:37 ]
IE8 入れたけど、htmlfile から window オブジェクト取得して
userAgent 調べると MSIE 7.0 のままなんだけど、何故に?

IE から調べるとちゃんと MSIE 8.0 が表示される。

842 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:39:00 ]
IE8、正式版と言うわりには色々おかしいような
WSH関係無いけど、SSLのクライアント証明書が使えなくなった

843 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 20:59:43 ]
>>841
べつのdllなんじゃろうて
その理由はきっとこぴぺ開発
もっともらしく言えば既存環境に影響を与えないように環境を二重にしたとか

844 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 03:05:21 ]
確かに htmlfile と IE の window オブジェクトは色々違いあるね。
前者は特にクリップボードに書き込みできないのが勿体無い。

845 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 10:17:45 ]
それは単にセキュリティゾーンの設定

846 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 11:10:30 ]
prompt()がだめとか

847 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 00:10:40 ]
wsfの拡張子を他のに変えてWSHに渡すと
「ファイル拡張子 ".xxx" を持つスクリプト エンジンはありません。」
って言われるんだが、内容はwsfの様式で、拡張子が.wsfではないファイルを
wsfとして実行させるにはどうしたら良い?

.wsfはwscript.exeの通常実行のままで、他を拡張子毎にcscript.exe実行やデバッガ実行などを
既定動作にしたいんだが、.wsf時には正常に実行できるファイルでも、拡張子を変えた途端にエラーとなる。
デバッグの有無(//D)なら、<?job debug="true" ?>で済むが
デバッガ実行(//X)とかcscript.exe実行とかはxml要素での指定が出来ないし。

スクリプトで自身を実行し直したり、ラッパー噛ませたりと妥協策は有るには有るが
そういう姑息な方法ではなく、別拡張子を直接渡して問題なく実行できる方法が有ったら教えて欲しい。



848 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 00:15:15 ]
ない

849 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 00:17:29 ]
?script.exeの名前を変えてバイナリ書き換え

850 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 02:48:41 ]
短いファイル名を使えばできるかも

851 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 03:47:59 ]
拡張子を偽装するほうが、”姑息な方法” だと思うが。姉歯か?おまいは・・・

バッチで
CD /D %~dp1
IF %~x1==.wsf wscript.exe %1
IF %~x1==.vbs cscript.exe %1
IF %~x1==.unko cscript.exe //X %1
みたいなのを作って、ドラッグ&ドロップするのが簡単


852 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 03:54:39 ]
知らないのに無理にレスすんな

853 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 16:51:02 ]
ショートカットで我慢しろ

854 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 19:24:03 ]
なるほど
ありがとうございました

855 名前:847 mailto:sage [2009/03/30(月) 19:50:17 ]
>>848
ご存じありませんか。

>>849
それが出来るならそれでも良いんですが、バイナリをいくつかの文字コードで検索してみたところ、
使用方法説明の「//Job:xxxx Execute a 【WSF】 job」や、無関係な「Windo【wsF】older」しかヒットしません。

「もしかしたらこれで出来るかも」という思いつきなら、残念ながら出来ないようですということになりますが
間違いなく出来ると言うなら、書き換えるバイナリアドレスを教えてください。

>>851
取り違えられているようなので、今一度説明します。
問題は、拡張子によって実行コマンドを変える方法ではなく、
.wsfの拡張子を変更した物を渡して実行させる方法です。

他人の目を欺く偽装ではなく、自分の環境での話なので、
拡張子によって実行コマンドを変える部分は関連付けの変更により既に解決しています。
847でも書いた通り、問題は関連付けで既定動作(つまりダブルクリックやEnterキー押下で
wscript.exeやcscript.exeに渡るよう)にした上で、渡されたファイルが実行されないことです。

そのバッチも無意味で、.vbsを.unkoとしたものなら
IF %~x1==.unko cscript.exe //X //E:VBScript %1
で実行されますが、.wsfを.unkoとしたものでは>>847の2行目で書いたエラーが出るだけです。

>>853
妥協策としてはショートカットよりはラッパーを選びます。



今のところ、可能であるなら>>849が最有力候補です。
他人のPCで実行させる話ではなく自分のPCでの話なので、システムフォルダ内や関連付けは
自由に弄れますから、>>849が可能なら解決です。

856 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 19:57:32 ]
なんでそんなことしたいん?

857 名前:847 mailto:sage [2009/03/30(月) 20:10:23 ]
>>856
最初にも書いた通り、
> 拡張子毎にcscript.exe実行やデバッガ実行などを既定動作にしたい
からです。

vbsの拡張子をvbcに変えた物を既定でcscript.exe実行に定義する「VBCFile」と同じです。
ttp://www.vector.co.jp/soft/winnt/util/se304538.html
> .VBS、.JSファイルはWScript.EXEか、CScript.EXEのいずれか既定値で起動されます。
> 既定値は変更できますが、すべてのスクリプトファイル起動方法が一律に変わります。
> 例えば、大部分のスクリプトファイルはWScript.EXEで起動し、一部のスクリプトファイルだけを
> CScript.EXEで起動したい、というような使い分けが出来ません。
> そこで、CScript.EXEで起動する専用の拡張子を別に作ります。
> 「.VBS」に対して「.VBC」、「.JS」に対して「.JSC」です。

これを.vbsや.jsではなく.wsfでやりたいというだけの話です。



858 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 20:13:00 ]
前スレか他スレで昔やってたやついたよ。

859 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 20:15:14 ]
未解決の前例なんて無いのと同じ

860 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 20:25:38 ]
wshext.dll内に.wsfがあるけど

861 名前:847 mailto:sage [2009/03/30(月) 20:42:51 ]
>>858
確認してみましたが、>>859さんの言う通り、未解決のまま立ち消えのようです。

>>860
?script.exe以外だと、別拡張子が実行できるようになったとしても
今度は.wsfが実行できなくなって、本来の目的である使い分けが出来ないということになりませんか?

862 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 20:48:16 ]
VectorにWSFFileがあるだろ

863 名前:847 mailto:sage [2009/03/30(月) 21:26:06 ]
>>862
ありがとうございます。おかげさまで解決しました。
VBCFileと同じ作者のものなのに見逃してました。

864 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 00:57:39 ]
吉岡さんは神

865 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 01:39:03 ]
MVP落ち

866 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 23:43:58 ]
バイナリ書き替えなくても>>850でできるのでは?

867 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 18:39:59 ]
うん



868 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 18:55:59 ]
無理

869 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:06:06 ]
有理

870 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:03:54 ]
実際に試してから書いた方がいいぜ

871 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 00:27:23 ]
遅レスだけど、レジストリエディタで↓を参照。>847

HKEY_CLASSES_ROOT\.WSF
HKEY_CLASSES_ROOT\WSFFile\Shell\Open\Command

872 名前:871 mailto:sage [2009/04/02(木) 00:30:51 ]
ちなみにVistaだとコンテキストメニューに「コマンドプロンプトで開く」ってのが
標準装備されてますな。

873 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 00:32:25 ]
>>847を読み直したほうがいいぜ

874 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 14:37:34 ]
なるほど

875 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 15:48:38 ]
なるほど っていいたいだけだろ

876 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 15:56:29 ]
なるほど

877 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 14:45:01 ]
すみません、以前どこかで見たことがあるような気がするんですが
けっきょく捜しきれなかったので質問させていただきます

LAN内のほかのマシンで実行中のアプリ(MSAccess)をリモートから強制終了
させるVBSってのが知りたいのです



878 名前:デフォルトの名無しさん [2009/04/06(月) 14:47:07 ]
あれれ、質問なのにSageちゃった
ごめんなさい
あげさせてもらいますね

879 名前:877 [2009/04/06(月) 16:50:49 ]
自己解決しました。

880 名前:877 [2009/04/06(月) 17:23:52 ]
877です。
879は、私ではありません。

881 名前: ◆877pupbpBk mailto:sage [2009/04/06(月) 17:33:07 ]
本物の877です。
879は、私ではありません。
880も、私ではありません。

とは言え自己解決はしてますのでもう消えます。
この状況ではこの後も私の偽物が出てくるかも知れませんが
以後放置してくださって結構です。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<191KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef