imasara2script
WSHやHTAなどのプログラムサンプルの公開用ブログ
2016年8月25日木曜日
WSHやHTAでプログラムを作成する時によく使う定型文
ファイルの入出力やリストの取得などを行う独自関数は利用頻度が高く、かなり使いまわしています。そういう便利で大事なものを、バックアップのためにもまとめてみました。
fs = new ActiveXObject('Scripting.FileSystemObject') shell = new ActiveXObject('WScript.Shell') // テキストファイル入出力 Read = function(path, swCreate, swUnicode){ if(!fs.FileExists(path) && !swCreate){return ''} var rs=fs.OpenTextFile(path,1,swCreate,swUnicode), str=rs.AtEndOfStream?'':rs.ReadAll() rs.Close() return str } Write = function(path,str,swUnicode,sw追記){ with(fs.OpenTextFile(path,sw追記?8:2,true,swUnicode)){Write(str); Close()} } RAS = function(path){return Read(path).split('\r\n')} gsf2 = fs.getSpecialFolder(2) // dirコマンドによるファイル(フォルダ)リスト取得 ;(function(){ var funCore=function(path, swDir){ var pathTMP=gsf2+'/'+fs.getTempName()+'.txt' // dirコマンドが完了するまで待機する。 shell.run('cmd /C dir /A'+(swDir?'':'-')+'D /B "'+path+'" > "'+pathTMP+'"', 0, true) var arr=RAS(pathTMP) // 最下行は中身無いので捨てる arr.pop() // 後始末 fs.deleteFile(pathTMP) return arr } getFileList=function(path){ return funCore(path) } getDirList =function(path){ return funCore(path,true) } })(); 二桁 = function(num){str='0'+str; return str.slice(str.length-2, str.length)} // 日時 get年月日=function(dat){ dat = dat || (new Date()) return [dat.getFullYear(), 二桁(dat.getMonth()+1), 二桁(dat.getDate())].join('/') } get時分秒=function(dat){ dat = dat || (new Date()) return [dat.getHours(), 二桁(dat.getMinutes()+1), 二桁(dat.getSeconds())].join(':') } get曜日=function(dat){ dat = dat || (new Date()) return '日月火水木金土'.charAt(dat.getDay()) } // 多階層フォルダを一気に作成する。 makeFolders = function(path){ var arr=path.replace(/\\/g,'/').split('/'), i=1 if(!arr[0] && !arr[1]){i=4} for(var L=arr.length;i<L;i++){ if(!fs.FolderExists(arr.slice(0,i).join('\\'))){ fs.CreateFolder(arr.slice(0,i).join('\\')) } } } // DOM関係 FI='firstChild', NE='nextSibling', PR='previousSibling', PA='parentNode', CN='childNodes', iH='innerHTML', iT='innerText' ;(function(){ var tags={btn:'button', chk:'input', sel:'select', ta:'textarea', inp:'input'} var func={ chk:function(elem){elem.type='checkbox'} } var ce=function(n){return document.createElement(n)} makeElem=function(elemParent, tagName, props, swProp){ var elem=ce( tags[tagName] || tagName ) func[tagName] ? func[tagName](elem) : 0 elemParent.insertBefore(elem) if(props){ setProperty(elem, props, swProp) } return elem } })(); var com = function(f){return (f+'').split('/*')[1].split('*/')[0]}
0 件のコメント:
コメントを投稿
次の投稿
前の投稿
ホーム
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿