makeLaunchFolder

Last-modified: 2014-08-16 (土) 12:41:50 (2121d)

指定フォルダ以下(サブフォルダ含)にあるexeファイルを調査し、すべてのショートカットをあるフォルダの中に作成します。

USBメモリの中にアプリケーションを入れている場合のランチャーの代わりとして。

<JOB id="makeLaunchFolder">
<SCRIPT language="JScript">

//▼出力先フォルダ名
var DESTINATION_FOLDER_NAME = "launch\\";

//▼スキャンを開始するフォルダ名
//var sourceFolder =".";
var sourceFolder ="apps";

//▼ショートカット作成を無視(拒否)するファイル名
var aryRegIngoreFilename = new Array(
	/^unin/,
	/^upda/,
	/uninst/
);

//▼検索する階層
var scanDepth = 2;

//▼終了後の処理
//ie:IEオブジェクトでフォルダを開く ex:エクスプローラでフォルダを開く それ以外は何もしない
var openFolder = "ie";




var fso = WScript.CreateObject("Scripting.FileSystemObject");
var wshShell = new ActiveXObject("WScript.Shell");
var ScriptPath = WScript.ScriptFullName.replace(WScript.ScriptName,"");

if(!fso.FolderExists(DESTINATION_FOLDER_NAME))
	fso.CreateFolder(DESTINATION_FOLDER_NAME);

makeShorcuts(sourceFolder,scanDepth);

switch(openFolder){
case "ex":
	wshShell.Run(ScriptPath+DESTINATION_FOLDER_NAME);
	break;
case "ie":
	var objLaunch = new ActiveXObject("InternetExplorer.Application");
	with(objLaunch){
		navigate(ScriptPath+DESTINATION_FOLDER_NAME);
		Top=0;
		Left=0;
		Width=150;
		Height=600;
		Toolbar=0;
		Statusbar=0;
		Visible=true;
	}
	break;
}
WScript.Quit();


function makeShorcuts(strFolder,intScanDepth){
	if(!intScanDepth) return;
	var objFolder = fso.GetFolder(strFolder);
	var fullFiles = new Enumerator(objFolder.Files);
	for (;!fullFiles.atEnd();fullFiles.moveNext()) {
		f = fullFiles.item();
		
		var isIgnore = false;
		for(i in aryRegIngoreFilename){
			if(f.Name.match(aryRegIngoreFilename[i])) isIgnore = true;
		}
		if(isIgnore) continue;
		
		aryRegIngoreFilename
		if(f.Name.match(/(.*)\.exe$/)){
			var shortcutName = RegExp.$1;
			var fileShortcut = wshShell.CreateShortcut(DESTINATION_FOLDER_NAME+shortcutName+".lnk");
			with(fileShortcut){
				TargetPath   = f.Path;
				Description  = f.Path;
				//IconLocation = f.Path;
				Save();
			}
		}
	}
	var fullFolders = new Enumerator(objFolder.SubFolders);
	for (;!fullFolders.atEnd();fullFolders.moveNext()) {
		f = fullFolders.item();
		makeShorcuts(f.Path,intScanDepth-1);
	}
}

</SCRIPT>
</JOB>