[[SoftwareEngineering]]
#author("2021-11-26T08:49:12+09:00","","")
[[ソフトウェア開発>SoftwareEngineering]] / [[JScript>./]]

情報が集まってきたら整理する。
それまではこのページに書いていく。

#contents

*実行中のスクリプトが存在するパスを取得する。 [#e12a2df7]
#highlightjs([javascript])
 var _DirectoryPath = WScript.ScriptFullName.replace(/[\\\/]([^\\\/]+)$/, '');

*XMLの操作 [#d6f233a5]
**Microsoft.XMLDOMを使用して、XMLを読み込む [#cb53584d]
-JScript
#highlightjs([javascript])
 var _XMLDom = new ActiveXObject('Microsoft.XMLDOM');
 
 _XMLDom.load("config.xml")
 _XMLDom.async = false;
 
 
 var _Nodes = _XMLDom.documentElement.childNodes;
 
 
 for (var _Index = 0; _Index < _Nodes.length; _Index++) {
     var _Node = _Nodes[_Index];
     
     
     WScript.Echo(_Node.getAttribute('name'));
     WScript.Echo(_Node.getAttribute('adspath'));
     WScript.Echo(_Node.getAttribute('user'));
     WScript.Echo(_Node.getAttribute('pass'));
     
     WScript.Echo('');
     WScript.Echo('');
 }
 
 
 
 _XMLDom = null;
 

-XML
 <?xml version="1.0" encoding="Shift_JIS"?>
 
 <config>
     <domain name="TopDomain" adspath="LDAP://DC01.codereign.org/DC=codereign,DC=org" user="user0001" pass="TopDomainPassword" />
     <domain name="SubDomain" adspath="LDAP://DC02.sub.codereign.org/DC=sub,DC=codereign,DC=org" user="user0002" pass="SubDomainPassword" />
 </config>
 

*Active Directory [#lbbb4fb7]
-[[ユーザーを作成する>./ActiveDirectory/CreateUser]]
-[[ユーザーを削除する>./ActiveDirectory/DeleteUser]]
-[[グループを作成する>./ActiveDirectory/CreateGroup]]
-[[ユーザーオブジェクトのプロパティを表示する>./ActiveDirectory/OutputUserProperty]]
-[[グループのメンバを取得する>./ActiveDirectory/GetGroupMember]]

*Microsoft Office [#o642b4f3]
-Officeファイルを読み取り専用で開く
#highlightjs([javascript])
 /// ---------------------------------------------------------------------------
 /// <summary>Microsoft Office ファイルを読取専用で開くスクリプト</summary>
 /// <remarks>対応済みアプリケーション:Word, Excel, MSProject, Visio, PowerPoint</remarks>
 /// <author>Reign</author>
 /// <homepage href="http://www.codereign.org/">CodeReign</homepage>
 /// ---------------------------------------------------------------------------
 if (WScript.Arguments.length == 0) {
     WScript.Echo('開きたいファイルをドラック&ドロップしてください。');
     WScript.Quit();
 }
 
 
 
 var _Word = null;
 var _Excel = null;
 var _Project = null;
 var _Visio = null;
 var _PowerPoint = null;
 
 for (var _Index = 0; _Index < WScript.Arguments.length; _Index++) {
     
     var _FilePath = WScript.Arguments(_Index);
     var _Extension = _FilePath.replace(/.*\./, '');
     
     if (_Extension.toLowerCase() == 'doc') {
         if (_Word == null) _Word = new ActiveXObject('Word.Application');
         
         _Word.Visible = true;
         _Word.Documents.Open(_FilePath, null, true);
     } else if (_Extension.toLowerCase() == 'xls') {
         if (_Excel == null) _Excel = new ActiveXObject('Excel.Application');
         
         _Excel.Visible = true;
         _Excel.Workbooks.Open(_FilePath, null, true);
     } else if (_Extension.toLowerCase() == 'mpp') {
         if (_Project == null) _Project = new ActiveXObject('MSProject.Application');
         
         _Project.Visible = true;
         _Project.FileOpen(_FilePath, true);
     } else if (_Extension.toLowerCase() == 'vsd') {
         if (_Visio == null) _Visio = new ActiveXObject('Visio.Application');
         
         _Visio.Visible = true;
         _Visio.Documents.OpenEx(_FilePath, 2);
     } else if (_Extension.toLowerCase() == 'ppt') {
         if (_PowerPoint == null) _PowerPoint = new ActiveXObject('PowerPoint.Application');
         
         _PowerPoint.Visible = true;
         _PowerPoint.Presentations.Open(_FilePath, -1);
     }
 }

-新しいExcel Applicationでブックを開く
#highlightjs([javascript])
 /// ---------------------------------------------------------------------------
 /// <summary>新しいExcel Applicationでブックを開くスクリプト</summary>
 /// <remarks></remarks>
 /// <author>Reign</author>
 /// <homepage href="http://www.codereign.org/">CodeReign</homepage>
 /// ---------------------------------------------------------------------------
 if (WScript.Arguments.length == 0) {
     WScript.Echo('開きたいファイルをドラック&ドロップしてください。');
     WScript.Quit();
 }
 
 
 var _Excel = new ActiveXObject('Excel.Application');
 
 for (var _Index = 0; _Index < WScript.Arguments.length; _Index++) {
     
     var _FilePath = WScript.Arguments(_Index);
     var _Extension = _FilePath.replace(/.*\./, '');
     
     _Excel.Visible = true;
     _Excel.Workbooks.Open(_FilePath, null, false);
 }

*入力ダイアログボックス [#i98533bb]
#highlightjs([javascript])
 /// ---------------------------------------------------------------------------
 /// <summary>入力ダイアログボックス</summary>
 /// ---------------------------------------------------------------------------
 function InputBox() {
     this.script = new ActiveXObject('ScriptControl');
     this.script.Language = 'VBScript';
     this.script.AddCode('Function IB(prompt, ditle, default)\n IB = InputBox(prompt, ditle, default)\n End Function');
 }
 
 
 /// ---------------------------------------------------------------------------
 /// <summary>入力ダイアログボックスを表示する</summary>
 /// <param name="APrompt">ダイアログ ボックス内にメッセージとして表示する文字列</param>
 /// <param name="ATitle">ダイアログ ボックスのタイトル バーに表示する文字列 </param>
 /// <param name="ADefault">テキスト ボックスに既定値として表示する文字列</param>
 /// ---------------------------------------------------------------------------
 InputBox.prototype.prompt = function(APrompt, ATitle, ADefault) {
     return this.script.Run('IB', APrompt, ATitle, ADefault);
 } 
 
 
 var _InputBox = new InputBox();
 var _InputText = _InputBox.prompt('APrompt', 'ATitle', 'ADefault');
 
 WScript.Echo(_InputText);
 

*配列 [#w3a7dd65]
**二次元配列の縦と横を入れ替える [#c3a7636e]
#highlightjs([javascript])
 /// ---------------------------------------------------------------------------
 /// <summary>標準出力画面に値を表示する</summary>
 /// ---------------------------------------------------------------------------
 function echo(AMessages) {
     var _Message = '';
     for (var _Index = 0; _Index < arguments.length; _Index++) {
         _Message += arguments[_Index];
     }
     WScript.Echo(_Message);
 }
 
 
 
 /// ---------------------------------------------------------------------------
 /// <summary>縦横変換</summary>
 /// ---------------------------------------------------------------------------
 function transpose(ATable) {
     var _MaxColumns = 0;
     
     
     // 最大列数を取得
     for (var _RowIndex = 0; _RowIndex < ATable.length; _RowIndex++) {
         if (_MaxColumns < ATable[_RowIndex].length) _MaxColumns = ATable[_RowIndex].length;
     }
     
     
     // 縦横変換テーブルの初期化
     var _Table = new Array(_MaxColumns);
     for (var _RowIndex = 0; _RowIndex < _Table.length; _RowIndex++) {
         _Table[_RowIndex] = new Array(ATable.length);
         
         for (var _ColIndex = 0; _ColIndex < _Table[_RowIndex].length; _ColIndex++) {
             _Table[_RowIndex][_ColIndex] = '';
         }
     }
     
     
     // 縦横変換
     for (var _RowIndex = 0; _RowIndex < ATable.length; _RowIndex++) {
         
         for (var _ColIndex = 0; _ColIndex < ATable[_RowIndex].length; _ColIndex++) {
             _Table[_ColIndex][_RowIndex] = ATable[_RowIndex][_ColIndex];
         }
         
     }
     
     
     return _Table;
 }
 
 
 
 var _Table = [];
 _Table.push(['1A', '1B', '1C']);
 _Table.push(['2A', '2B', '2C']);
 _Table.push(['3A', '3B']);
 _Table.push(['4A', '4B', '4C']);
 _Table.push(['5A', '5B', '5C']);
 _Table.push(['6A', '6B', '6C', '6D']);
 
 
 echo('縦横変換(入替前)');
 for (var _RowIndex = 0; _RowIndex < _Table.length; _RowIndex++) {
     echo(_Table[_RowIndex].join(","));
 }
 
 
 echo('');
 echo('');
 echo('縦横変換(入替後)');
 
 
 _Table = transpose(_Table);
 for (var _RowIndex = 0; _RowIndex < _Table.length; _RowIndex++) {
     echo(_Table[_RowIndex].join('\t'));
 }


*拡張子を取得する [#b047ba54]
#highlightjs([javascript])
 /// ---------------------------------------------------------------------------
 /// <summary>拡張子を戻す</summary>
 /// ---------------------------------------------------------------------------
 function getFileExtension(AFileName) {
     
     var startExtensionIndex = AFileName.lastIndexOf('.');
     
     if (startExtensionIndex < 0) return '';
     if (startExtensionIndex == 0) return '';
     
     return AFileName.substring(startExtensionIndex + 1);
 }

*拡張子を除いたベース名を取得する [#o7cddf11]
#highlightjs([javascript])
 /// ---------------------------------------------------------------------------
 /// <summary>拡張子を除いたベース名を戻す</summary>
 /// ---------------------------------------------------------------------------
 function getFileNameWithoutExtension(AFileName) {
     
     var startExtensionIndex = AFileName.lastIndexOf('.');
     
     if (startExtensionIndex < 0) return AFileName;
     if (startExtensionIndex == 0) return '';
     
     return AFileName.substring(0, startExtensionIndex);
 }
 

*テンプレート [#n60efa62]
-[[CSV読み込み>./org.codereign.jscript.io.CSVFileStream]]


*その他 [#h052d0c2]
-[[ファイルの読み書き>./ファイルの読み書き]]

*スクリプトと同じフォルダ内にあるファイルを取得する [#jae61ced]
#highlightjs([javascript])
 var _Directory = WScript.ScriptFullName.replace(/[\\\/]([^\\\/]+)$/, '');
 var _FileSystem = new ActiveXObject('Scripting.FileSystemObject');
 
 var _Folder = _FileSystem.GetFolder(_Directory);
 var _Files = new Enumerator(_Folder.files);
 
 
 for (null; !_Files.atEnd(); _Files.moveNext()) {
     WScript.Echo(_Files.item());
 }

トップ   差分 履歴 リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS