Recent changes

2013-04-14 2013-04-02 2013-02-17 2013-01-29 2013-01-20 2013-01-18 2012-12-08 2012-11-06 2012-09-04 2012-08-02

WSH


Windows Scripting Host

batをさらに進化させたような感じの。Windows98から使えるようになった。最近のWSHは複数言語まぜて使ったりなんかいろいろできるらしい。がしらん。

Reference

TextStreamオブジェクト

Line
type permission h
Property Read only

格納されたテキストのカーソルが存在する行数を返す。 読み取り専用で値の取得だけできる。

writeLine
type argument h
Method string

一行かきこみー

readAll
type argument h
Method string

ポインタの存在する場所からファイルの末尾までを読み込む

Tips

コマンドライン引数を取得する。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/wsproarguments.asp WScript.Argumentsプロパティにはコレクションで引数が入っているのでぐるぐるまわす事で取り出すことができる。以下はJScriptでのサンプル。

objArgs = WScript.Arguments;
for (i = 0; i < objArgs.length; i++)
{
   WScript.Echo(objArgs(i));
}

空のファイルを作成する。(FileSystemObject::createTextFile)

存在しないファイルに対して書き込みを行う事はできないので 自分で空のファイルを作成してから書き込む必要がある。

FileSystem = WScript.crateObject("Scripting.FileSystemObject");
FileSystem.createTextFile('hoge.txt');

コードすにぺっつ。

PHPっぽい感じの関数をたくさん用意する事でWSH特有の面倒なオブジェクト取得の回数を減らす.ただし,関数という都合で,毎回オブジェクトを呼ぶので速度とかメモリを気にするなら使わないほうがいい.お手軽さ優先

file_get_contents

使い方はhttp://php.net/file_put_contentsと同じ。第一引数に保存する内容を指定する。 <code>

/**
 * file_get_contents
 *
 * @author halt feits <[email protected]>
 */
function file_get_contents(filename)
{
    var FileSystem;
    var data;
    var FOR_READING = 1;
    var FOR_WRITING = 2;

    FileSystem = new ActiveXObject("Scripting.FileSystemObject");
    Text = FileSystem.openTextFile(filename, FOR_READING, true);
    data = Text.readAll();
    Text.close();

    return data;
}

</code>

file_put_contents

使い方はhttp://php.net/file_put_contentsと同じ。第一引数に保存するファイル名、第二引数に保存する内容を指定する。

/**
 * file_put_contents
 *
 * @author halt feits <[email protected]>
 */
function file_put_contents(filename, data)
{
   var FOR_READING = 1;
   var FOR_WRITING = 2;
   var FileSystem;
   FileSystem = new ActiveXObject("Scripting.FileSystemObject");
   FileSystem.createTextFile(filename);
   Text = FileSystem.openTextFile(filename, FOR_WRITING, true);
   Text.write(data);
   Text.close();
}

関連リンク