プログラミング系のネタをまとめていきます。

演算子

==と===

==等価演算子型変換して比較する。
===厳密等価演算子型変換せずに比較する。

バグの発生を防ぐために、基本は「厳密等価演算子」を使い、
曖昧な処理で良い時だけ「等価演算子」を使うようにするのが良さそうです。

配列


// 配列生成
var list = new Array();

// 要素を追加
list.push("000");
list.push("111");
list.push("222");

// 繰り返し処理
for(var i = 0; i < list.length; ++i)
{
	WScript.Echo(list[i]);
}

文字列操作

split


var path = "C:\\data\\temp";
var strs = path.split("\\");	// -> {"C:", "data", "temp"}

indexOf


var str = "abcdefg";
str.indexOf("c", 0);	// -> 2

正規表現


var text = "000abc111222";
var regPtn = new RegExp("[a-z]+", "g");

var ret = regPtn.exec(text);

if(ret != null && ret.length > 0)
{
	WScript.Echo(ret[0]);
}

WScript

コンソールに出力


WScript.Echo("Hello World");

引数を取得する


// 引数の数
WScript.Echo(WScript.arguments.length);

// 引数を取得
for(var i = 0; i < WScript.arguments.length; ++i)
{
	WScript.Echo(WScript.arguments(i));
}

Shell


Shellを利用するには以下のようにオブジェクトを生成し、そこからアクセスします。

var shell = new ActiveXObject("Wscript.Shell");

アプリケーションの起動


var vbHide = 0             //ウィンドウを非表示
var vbNormalFocus = 1      //通常のウィンドウ、かつ最前面のウィンドウ
var vbMinimizedFocus = 2   //最小化、かつ最前面のウィンドウ
var vbMaximizedFocus = 3   //最大化、かつ最前面のウィンドウ
var vbNormalNoFocus = 4    //通常のウィンドウ、ただし、最前面にはならない
                           // 5:前回終了時と同じ
var vbMinimizedNoFocus = 6 //最小化、ただし、最前面にはならない

shell.Run("cmd /c" + "Dir . /b/s/a:-d > file_list.txt", vbHide, true);	// ファイル一覧をテキストファイルへ出力

// 形式
// shell.Run(cmd, [WinStyle], [WaitOnReturn]);
cmd実行するコマンドライン
WinStyleウィンドウスタイル。上記の例の通り
WaitOnReturntrue:プログラムが終了するまでスクリプトは停止。
false:プログラムの終了を待たずに、スクリプトの処理は進行する。

ファイル操作

フォルダの存在チェック


var fileSys = WScript.CreateObject("Scripting.FileSystemObject");
WScript.Echo( fileSys.FolderExists(path) );		// true:フォルダが存在する/false:存在しない

フォルダを作成


パスの全階層のフォルダを作成する。

var fileSys = WScript.CreateObject("Scripting.FileSystemObject");
// 指定のフォルダが存在しなければ、作成する
if (!fileSys.FolderExists(path))
{
	fileSys.CreateFolder(path);
}

フォルダ以下のオブジェクトを取得


指定のフォルダ以下のファイル、フォルダをまとめて取得する。

var objApl = WScript.CreateObject("Shell.Application");
var objFolder = objApl.NameSpace(path);
var objFolderItems = baseFolder.Items();

for(var i = 0; i < objFolderItems.Count; ++i)
{
	var objItem = objFolderItems.Item(i);
	
	WScript.Echo((objItem.IsFolder ? "D " : "F ") + objItem.Path);
}

クラス定義


JScriptには class のような予約語が無いですが、クラスを定義することは出来ます。


ファイル名は任意。

// TestClassクラスのコンストラクタとする
function TestClass(intParam)
{
	// プロパティ
	this.value = intParam;
	
	// メンバ関数
	this.Output = TestClass_Output;		// 関数名は何でもいい
}

// valueを出力する関数
function TestClass_Output()
{
	WScript.Echo("Value is " + this.value);		// プロパティは this を付ける
}


// インスタンス生成してメンバ関数呼び出し
var obj = new TestClass(10);
obj.Output();

Menu

メインコンテンツ

プログラミング

機器

Macツール

各種情報

Wiki内検索

おまかせリンク

Androidアプリ

AdSense

技術書


管理人/副管理人のみ編集できます