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


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

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



1 名前:デフォルトの名無しさん [2007/04/16(月) 13:48:54 ]
( ´ゝ`) 誰か詳しい情報キボンヌ

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

●関連スレ
お前ら、wsh使ってますか? part6
pc11.2ch.net/test/read.cgi/win/1155040873/
【イケメン】阿龍スレ避難所@自己紹介【彼女募集中!】
life8.2ch.net/test/read.cgi/intro/1171897814/

●個人サイト
Windows Scripting Host Laboratory
www.roy.hi-ho.ne.jp/mutaguchi/wsh/
Windows Script Wiki
winscript.s41.xrea.com/wiki/index.php
音楽
winscript.mine.nu/music/
キャラネタ板・なな板のための何か
charaneta.mine.nu/

613 名前:デフォルトの名無しさん [2008/01/10(木) 15:46:01 ]
>それをBというディレクトリにmoveしますが途中で終了してしまい

「それ」 とは何か。具体的に書け。

614 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 16:54:33 ]
>「それ」 とは何か。具体的に書け。

単数形だから「Aというディレクトリ」じゃね

615 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 17:24:00 ]
>611
最初のmoveにより、ディレクトリAからファイルa,b,cが消えた。
その状態でディレクトリAを再びmoveさせれば、ディレクトリBにファイルd,eしかないのも別におかしくないだろ。

616 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 20:57:58 ]
普通はディレクトリとその中身のファイルは別だからねぇ。
ディレクトリを移動(上書き)というのはディレクトリ自体の移動ではなく中身の移動のことだし。

中身の移動であるという観点から見れば、上書きが発生すること自体おかしな話だわな。

617 名前:デフォルトの名無しさん [2008/01/10(木) 21:32:01 ]
なぜ 「それ」 が問題なのかというと、
Aというディレクトリを move せずに
a,b,c,d,e というファイルを move すればよかったんだよ。
「それ」 が A なのか a,b,c,d,e なのかで結果が違ったんだね。

618 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 21:57:15 ]
Macはどうでもいいよ。

619 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 17:16:43 ]
a,b,c,d,e なら「それら」だろ

620 名前:デフォルトの名無しさん [2008/01/11(金) 20:19:27 ]
>>611
ご愁傷さま


621 名前:デフォルトの名無しさん [2008/01/11(金) 20:56:54 ]
www.microsoft.com/japan/technet/scriptcenter/resources/qanda/oct04/hey1011.mspx
を JScript に移植したくて以下のように書きましたが、実行すると
xxx.js(4, 1) SWbemServicesEx: 無効なクエリです。
というエラーで止まってしまいます。
どこが間違っているでしょうか?

var strComputer = ".";
var objWMIService = GetObject("winmgmts:\\\\" + strComputer + "\\root\\CIMV2");

var colMonitoredEvents = objWMIService.ExecNotificationQuery(
"SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE " +
"Targetinstance ISA 'CIM_DirectoryContainsFile' and " +
"TargetInstance.GroupComponent= " +
"'Win32_Directory.Name=\"c:\\\\scripts\"'");

while (true)
{
var objLatestEvent = colMonitoredEvents.NextEvent;
WScript.Echo(objLatestEvent.TargetInstance.PartComponent);
}



622 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 20:58:28 ]
>>611
次から気を付けようなw

623 名前:デフォルトの名無しさん [2008/01/11(金) 20:59:57 ]
>>622
ここが間違ってる

var colMonitoredEvents = objWMIService.ExecNotificationQuery(
"SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE " +
"Targetinstance ISA 'CIM_DirectoryContainsFile' and " +
"TargetInstance.GroupComponent= " +
"'Win32_Directory.Name=\"c:\\\\scripts\"'");


624 名前:621 [2008/01/11(金) 21:09:46 ]
>>623
すみません、書き方が悪かったです。
どこが間違ってるかはエラーメッセージが教えてくれているのでわかってました。
どう直せばいいんでしょうか?

625 名前:デフォルトの名無しさん [2008/01/11(金) 21:41:29 ]
デバッグくらい自分でしろ〜
他人に投げるな〜〜

626 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 21:42:52 ]
var colMonitoredEvents = objWMIService.ExecNotificationQuery(
"SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE "
+ "Targetinstance ISA 'CIM_DirectoryContainsFile' and "
+ "TargetInstance.GroupComponent= "
+ "'Win32_Directory.Name=\"c:\\\\\\\\scripts\"'");

627 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 22:38:22 ]
wwww

628 名前:621 mailto:sage [2008/01/15(火) 17:17:28 ]
>>626
ありがとう

629 名前:デフォルトの名無しさん [2008/01/18(金) 06:33:04 ]
CreateObject("ADODB.Stream")

上記でエラーがでます。
おそらく、ファイルが必要だと思うのですが、
それはどうやったら手に入りますか?


630 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 07:29:28 ]
>>629
とりあえずエラーの内容書いてみ

631 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 21:42:53 ]
>>629
MSからダウンロードに決まってるだろ



632 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 22:22:49 ]
標準で入ってない環境、まだあったっけ?

633 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 09:49:15 ]
FileSystemObjectとか称してテキストファイルの読み書きしか出来ないの?
fread,fwriteとかseekのメソッドを提供してるクラスって無いの?

634 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 09:59:08 ]
出来ない
ADODB.Stream

635 名前:デフォルトの名無しさん [2008/01/19(土) 15:46:30 ]
ADODB.Stream ってファイル全体をいっぺんに読み込んでしまうよね?
デカイ動画ファイルの 最初の数バイトだけ 読み込んで処理したいけど
ファイル全体を読み込んでしまうため時間がかかってしょうがない。
何か良い手は無いですか?

636 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 16:18:25 ]
FileSystemObjectで読む

637 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 22:25:52 ]
PowerShellやC#に逃げる

638 名前:デフォルトの名無しさん [2008/01/20(日) 01:04:11 ]
     ↑
自分の殻に閉じこもる現実逃避型。

639 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 01:25:31 ]
debugでダンプする

640 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:01:36 ]
殻=shell

641 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 22:13:18 ]
basp21



642 名前:デフォルトの名無しさん [2008/01/20(日) 22:46:52 ]
客先のPCにbasp21がインストールしてあれば苦労しないよ

643 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 23:24:23 ]
スクリプトをインストール(=使用準備なので何処かのディレクトリにスクリプト置くだけでインストールになる)は可能なのに
COMコンポーネントのインストールは不可なんて馬鹿げたことを言い出すような低レベルな奴など相手にするな

こんなこと言い出すのは、嫌レジストリ厨とか"インストール"の意味を分かってない奴とか、相当な初心者の類だが、
もし"客先"ってのが会社なら、そんな奴がシステム管理においての権限を持ってるなんてゾッとしないねw
まあそれ以前にWSHスクリプトを外注する会社ってのもアレだけどw

644 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 23:37:16 ]
FileSystemObjectなら使えるだろうに、なぜ使わん?

645 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:12:46 ]
スクリプトの中で COM みつからなかった初回のみ regsrvr32 すれば?

646 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:14:43 ]
>>635
> デカイ動画ファイルの 最初の数バイトだけ 読み込んで処理したいけど
とのことだ。
バイナリは無理だろ。

647 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:15:20 ]
>>646>>644 へのレスね。

648 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 01:28:09 ]
OpenBinaryFile()

649 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 01:50:38 ]
> バイナリは無理だろ。

何が?

650 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 01:55:19 ]
FSOでってことだろ

651 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 04:47:12 ]
ForBinaryReading



652 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 10:21:14 ]
それは今回の用途とは違うわけで

653 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 16:21:14 ]
baspをbase64してwsfに入れて実行時に登録

654 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 16:36:19 ]
すなおにVBで作って納品46

655 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 01:59:20 ]
VBSファイルごとにアイコン変える方法おすえて

656 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 02:11:42 ]
>>655
ショートカット作って、ショートカットのアイコン変えるとか

657 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 21:41:26 ]
そういうアイコンハンドラを使えばいいんじゃね
なければ作ればいいんじゃね

658 名前:sage [2008/01/31(木) 00:57:14 ]
1.WSHを使って指定URLをIEから立ち上げる
2.(1)のURLのHTMLに含まれるjavascriptを解析して
自動で実行したい

WSHで1.はできると思うのですが、2はできますでしょうか?
できるのであればヒントを教えていただけぬか


659 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 00:59:05 ]
HTMLDocument

660 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 20:30:46 ]
最近 WSH を始めた者です。
WSHShell の Run メソッドでアプリを起動して使おうとしているんですが、
普通にアイコンをダブルクリックして起動した場合と挙動が違って困っています。

とりあえずわかったことは、そのアプリは ¥Document and Settings¥ユーザ名¥
Application Data¥アプリ名 以下に一時ファイルを作るんですが、WSH から
起動した場合ファイルが生成されないようです。
WSH の場合でもちゃんと走るようになる為には何か別途設定がいるのでしょうか?
今は基本的に WSHShell.Run(アプリのバス, 4, True) を呼んでるだけです。

661 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 21:42:20 ]
>>660
カレントディレクトリを設定しろ
設定仕方はWSHヘルプに載ってるので嫁



662 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 07:34:31 ]
>>661
どうもです。

>WSHヘルプ
すみません、実はこれが何を指すのか分からん程度なんですがw

>カレントディレクトリを設定しろ
ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/wslrfcurrentdirectory.asp
によると CurrentDirectory というプロパティがあるそうなのでこれを適宜セット
する、で正解ですか?
で、できたらどんな値にセットするかも教えていただけると助かるのですが...
もしかしたらWSHヘルプというものにそれが書いてあるんでしょうか。

逆に考えると、普通にダブルクリックで起動したアプリではカレントディレクトリが
適宜セットされているから動く、ということでしょうか? もしそうなら一体どんな値になって
いる? という疑問がわきますが...

663 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 08:38:11 ]
右クリック-プロパティ

664 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 09:38:40 ]
通常はダブルクリックしたものがあるディレクトリがカレントディレクトリとなる。

665 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 11:10:49 ]
>>662で言ってる CurrentDirectoryって Windows2000にデフォルトで入ってるWSHでは
動きませんよねぇ。なんか代替のメソッド無いですかね?

666 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:14:22 ]
>>665
Win2Kでも、WSH5.6なら、("Wscript.Shell").CurrentDirectryが使える。
インストール直後のバージョンは、どうだったかな‥

古いWSHでも、("Wscript.Shell").Run """ショートカットファイル.lnk""",,False なら
問題ない。False設定しか使えなくなっちゃうけども。

Wscript.ScriptFullName のほうは今回無関係ですかね。


667 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 16:33:34 ]
そのスクリプトファイルのショートカットを作って作業フォルダを設定しろ

668 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 02:07:27 ]
WSHでファイルを読み取り専用に変えることはできますでしょうか?

669 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 02:20:08 ]
readonly属性をつけることならできるな

670 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 03:43:53 ]
>>669
それです。教えてください。

671 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:41:54 ]
Attributes=1



672 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:09:40 ]
ヘルプみろ

673 名前:662 mailto:sage [2008/02/04(月) 06:06:35 ]
>>664
なるほど。その値でうまくいくようです。ありがとうございます、

674 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:53:29 ]
質問です。

現在、VBSCriptで各ディレクトリのアクセス権限を
テキストに書き出す仕組みを作成しています。

コマンドは下記のようになっております。
CACLS <ディレクトリ名> >> <出力ファイル>

ディレクトリ名、出力ファイル名はパラメータとして受け取り、
文字列を結合してWshShell.Runに渡しております。 ・・・【1】

ここで問題なのですが、【1】の文字列をコピペして
DOSプロンプトで実行すると、正しく出力がされているのですが、
WshShell.Runにて実行すると、正しく出力されません。

この部分のコードは下記のようになっております。----------*

Command = "CACLS " & DIRName & " > " & ExportFileName
objShell.Run Command ' WShellオブジェクトは生成済み

--------------------------------------------------------*

恐れ入りますが、どなたかこのような現象を経験されておりましたら、
解決策の指南のほどよろしくお願いいたします。

675 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:26:05 ]
>WShellオブジェクトは生成済み

ソース全部貼るべき

「・・・【1】」って違う場所に書いてない?



676 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:27:44 ]
>WshShell.Runにて実行すると、正しく出力されません。
とはどうなるのだ?

677 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:11:25 ]
Set objShell = WScript.CreateObject("WScript.Shell")
Command = "CACLS %cd% > out.txt"
objShell.Run Command

これで試してみたけど、うまくいかないね。

Command = "cmd /c cacls〜

ではうまくいくけど。

678 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 20:04:10 ]
%windir%\system32\cacls.exeと指定したらどう?

679 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:50:01 ]
リダイレクトはシェル(cmd.exe)の機能。

680 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 06:34:50 ]
フルパス指定でも無理

681 名前:674 mailto:sage [2008/02/07(木) 09:15:53 ]
皆さんご回答ありがとうございます。

>>WshShell.Runにて実行すると、正しく出力されません。
>とはどうなるのだ?
パラメータ無しで実行したCACLSのように、ヘルプが表示されます。

経過ですが、
>>677さんの"cmd /c cacls〜"で試してみたところ、うまくいきました。

大変お世話になりました。



682 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:25:55 ]
タクススケジューラの引数について質問です。

Windowsタクススケジューラで設定した引数が渡ってこない(WScript.Arguments.Count = 0)のです。
同じパス(コマンドライン)で作ったショートカットを実行すると引数が渡ってくる(WScript.Arguments.Count > 0 )のです。

実際に試した記述は、「c:\test.vbs abc」と「c:\test.vbs "abc"」と「"c:\test.vbs abc"」です。

何か特別な記述方法などあるのでしょうか?
先輩方、よろしくご教授ください。

683 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 13:36:44 ]
cmd /c c:\test.vbs abc

684 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 15:31:49 ]
先輩!ありがとうございました!

685 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:29:01 ]
ファイルをドラッグアンドドロップしたらパスを表示するスクリプトが動きません。
どこを直せばよいか教えてください。

var strArgument = new Array();
if ( WScript.Arguments.count() == 0 ) {
WScript.Echo ("コマンドライン引数が指定されていません。");
}
else {
for ( strArgument in WScript.Arguments ) {
WScript.echo ( strArgument[i] );
}
}

686 名前:685 mailto:sage [2008/02/08(金) 21:37:42 ]
スクリプトをダブルクリックした時は正常作動しますが
ファイルをドロップすると何も表示されません。
スクリプトエラーも出ないので困っています。

687 名前:デフォルトの名無しさん [2008/02/08(金) 22:03:46 ]
コマンドライン引数が指定されているからに決まってるだろ

688 名前:デフォルトの名無しさん [2008/02/08(金) 22:04:54 ]
var strArgument = new Array();
if ( WScript.Arguments.count() == 0 ) {
   WScript.Echo ("コマンドライン引数が指定されていません。");
}
else {
   WScript.Echo ("コマンドライン引数が指定されました。");
}


689 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:18:40 ]
for ( strArgument in WScript.Arguments ) {
WScript.echo ( strArgument[i] );
}
これ、なにしてるの?

690 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:42:40 ]
>>688
var strArgument = new Array();
これ、なにしてるの?

691 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:52:48 ]
msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/wsproarguments.asp



692 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:25:21 ]
>>685
// var strArgument = new Array();
if ( WScript.Arguments.count() == 0 ) {
WScript.Echo ("コマンドライン引数が指定されていません。");
} else {
for (i = 0; i < WScript.Arguments.length; i++ ) {
WScript.echo ( WScript.Arguments(i) );
}
}

.vbsファイルしか作った事がないけど、なんとなく.jsファイルはこれで動くんじゃないかなぁと・・?

693 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:56:38 ]
>>692
> if ( WScript.Arguments.count() == 0 ) {
count はメソッドじゃなくプロパティ。

694 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:10:28 ]
>>693
えー?

695 名前:685 mailto:sage [2008/02/09(土) 00:12:24 ]
>>692
動きました。ありがとうございます。
只今WSHをJScriptで書こうと、vbsのスクリプトを翻訳しながら勉強中です。
でもJSのサンプルコードが少なくて困ってました。
今回は元コードに配列を使っているように見えたので、それらしく書き換えたけど動きませんでした。
なんでここまで違いが出るのか、まだ理解してませんw
↓元のサンプルコード
Option Explicit
Dim strArgument

If WScript.Arguments.Count = 0 Then
WScript.Echo "コマンドライン引数が指定されていません。"
Else
For Each strArgument In WScript.Arguments
WScript.Echo strArgument
Next
End If

696 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:28:24 ]
>>695
実際にはいろいろな書き方ができるので、余計に混乱してるのかも。

元のスクリプトになるべく忠実に対応させるなら、以下のような書き方もできる。

if (WScript.Arguments.length == 0) {
WScript.Echo("コマンドライン引数が指定されていません。");
}
else {
var e = new Enumerator(WScript.Arguments);
for (; !e.atEnd(); e.moveNext()) {
WScript.Echo(e.item());
}
}


697 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:31:07 ]
for (var e = new Enumerator(WScript.Arguments); !e.atEnd(); e.moveNext()) {
すっきり

698 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:41:48 ]
>只今WSHをJScriptで書こうと、vbsのスクリプトを翻訳しながら勉強中です。

なぜ?遅いのに。いろいろ細かいことにうるさいのに。などなど

699 名前:デフォルトの名無しさん [2008/02/09(土) 01:35:29 ]
マイクロソフトの公用言語はBASIC
ゲイツはBASIC長者
java には裁判で負けた恨みが有る

700 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 09:13:38 ]
WSHは使うけど、今はもうVBScriptでは書かないなあ。
JavaScript(JScript)のある意味変態的な言語仕様に慣れてしまったら戻れない。

701 名前:デフォルトの名無しさん [2008/02/09(土) 14:37:22 ]

変態



702 名前:693 mailto:sage [2008/02/09(土) 15:58:20 ]
>>694
> >>693
> えー?
といわれてMSDN見てきた。

msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/wsobjWshArguments.asp

プロパティとメソッド、両方あるな……。

ふだんはJScriptで length 使うか Enumerator にして扱ってるんで、
確認不足で適当に書いてしまった。スマソ

703 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:38:49 ]
>プロパティとメソッド、両方あるな……。

プロパティを見るとメソッドになってて、メソッドしかないような

704 名前:デフォルトの名無しさん [2008/02/09(土) 17:18:48 ]
動きさえすればどっちでもいいよ

705 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:22:03 ]
with (WScript.Arguments) {
    WScript.Echo(Count());
    WScript.Echo(length);
    WScript.Echo(Count); // エラー
}

706 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 20:48:58 ]
basp21のsocketって非同期通信できませんか?
データ取得できたらコールバック関数を呼びたいんですが。

接続できなかった場合とかタイムアウトになるまで
他の処理ができない



707 名前:685 mailto:sage [2008/02/09(土) 23:10:36 ]
昨日教えてもらったスクリプトを、テキストに出力しようとしたら働きません。
また教えてください。

var objFso = new ActiveXObject("Scripting.FileSystemObject");
var objFile = objFso.OpenTextFile("testdirlist.txt", 8, true);
var path String();
objArgs = WScript.Arguments;
for (i = 0; i < objArgs.length; i++)
{
path = path + objArgs(i) + "\n";
}
//WScript.Echo(path);//←働く
objFile.WriteLine(path);//←働かない
objFile.Close();

708 名前:685 mailto:sage [2008/02/09(土) 23:13:59 ]
×var path String();
○var path = String();

709 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:46:55 ]
絶対パスにすれば

710 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:18:19 ]
var path = "";


711 名前:685 mailto:sage [2008/02/10(日) 00:30:39 ]
>>709
動きました!



712 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 12:28:54 ]
WSH 5.1(Win2k)環境でカレントディレクトリを変更したいのですが
Set foo = WScript.CreateObject("WScript.Shell")
foo.CurrentDirectory =
と言った.CurrentDirectoryプロパティはWSH 5.6(WinXP)以降の環境でしか動作しません。
もちろんWin2kのWSHをバージョンアップすれば動くのですが、それは手間がかかる為
やらずに解決したいと思っています。

やりたい事は、WSHスクリプトファイル(仮にhoge.vbs)と同じ階層に scriptと言うフォルダがあり、
そのフォルダの中に var.bat と言うファイルがあるとして

Set objShell = WScript.CreateObject("WScript.Shell")
Set fs = WScript.CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(".")
objShell.Run f.path & "\script\var.bat"
等として、他のフォルダ内の実行ファイルを実行したいのです。
しかし実際にコレをやると、指定されたファイルが見つかりません とエラーが表示されて実行できません。
確かにファイルは存在しますし、WScript.Echo f.path & "\script\var.bat" とかやってパスを確認しても
正しいパスです。

なので、カレントディレクトリを実行ファイルのある場所に移動しないと実行できないのかなと
考え、CurrentDirectoryを変更する方法を考えているのですが・・・
普通に考えてCurrentDirectoryを変更せずとも実行できるはずですよねぇ・・アドバイス頂けませんか?

713 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 12:37:49 ]
パスをだぶるくぉーてーしょんで囲みなさい






[ 続きを読む ] / [ 携帯版 ]

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

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