windows script host by jscript
スクリプトの呼び出し。 アイコンのダブルクリックや、アイコンへのドラッグ&ドロップでも起動できる。
cscript script.js //Nologo
wscript script.js //Nologo
メッセージの表示。cscript ... で実行するとターミナルに表示される。
WScript.Echo( "メッセージ" + foo);
バッチファイルを呼び出す
var openssl = "C:\\Users\\public\\Documents\\bin\\openssl.exe";
var shell = WScript.CreateObject("WScript.Shell");
try {
oExec = shell.Exec( openssl + " version" );
//oExec = shell.Exec( openssl + " --help" );
while ( ! oExec.StdOut.AtEndOfStream ) {
WScript.Echo(oExec.StdOut.readline());
}
while ( ! oExec.StdErr.AtEndOfStream ) {
WScript.Echo(oExec.StdErr.readline());
}
}
catch (e){
WScript.Echo(e)
}
引数のぶんだけ繰り返して実行する
var objArgs = WScript.Arguments;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var file;
for (i = 0; i < objArgs.length; i++) {
try {
file = fso.GetFile( objArgs(i) );
fin = fso.OpenTextFile(file, 1, false);
while ( ! fin.AtEndOfStream ) {
line = fin.readline();
WScript.Echo(line);
}
fin.Close();
}
catch (e) {
WScript.Echo(e);
}
}
ファイルを開き一行ずつ読み込んで処理。
var objArgs = WScript.Arguments;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var file;
var fin;
for (i = 0; i < objArgs.length; i++) {
try {
file = fso.GetFile( objArgs(i) );
}
catch(e) {
WScript.Echo(e);
continue;
}
fin = fso.OpenTextFile(file, 1, false);
while ( ! fin.AtEndOfStream ) {
line = fin.readline();
WScript.Echo(line);
}
fin.Close();
}
アクセスファイルを開き、マクロを呼び出す。
var dbfile='C:\\Users\\public\\Documents\\Database1.accdb';
var timeout = 500; // milliseconds
try {
var AccessApp = new ActiveXObject( "Access.Application" );
// AccessApp.Visible = true;
WScript.Sleep( timeout );
try {
AccessApp.OpenCurrentDatabase( dbfile );
WScript.Sleep( timeout );
// マクロを実行する例
// AccessApp.DoCmd.RunMacro( "マクロ名" );
}
catch(e) {
WScript.Echo(e);
}
finally {
AccessApp.CloseCurrentDatabase();
}
}
catch(e) {
WScript.Echo(e);
}
finally {
AccessApp.Quit();
AccessApp = null;
}
excel
var excelfile = "c:\\users\\public\\documents\\test.xlsm"
var updatelinks = true;
var readonly = true;
try {
var ExcelApp = new ActiveXObject("Excel.Application");
// ExcelApp.Visible = true;
// ExcelApp.DisplayAlerts = true;
try {
// var book = ExcelApp.Workbooks.Open(excelfile);
var book = ExcelApp.Workbooks.Open(excelfile, updatelinks, readonly);
// マクロを実行する例
ExcelApp.Run("マクロ名")
// シートに記入して保存する例
// var sheet = book.sheets(1);
// sheet.Cells(2, 1).value = "message...";
// book.Save();
}
catch(e) {
WScript.Echo(e)
}
finally {
book.Close();
}
}
catch(e) {
WScript.Echo(e)
}
finally {
ExcelApp.Quit();
}