以下のスクリプトはフォルダ内の画像ファイルをJPEGに変換します。
スクリプトはPhotoShifter本体と同一フォルダに置いてください。
起動はPhotoShifter本体と同一フォルダから行ってください。
filestojpeg.js
//使用方法:cscript filestojpeg.js 入力フォルダ名 出力フォルダ名
var arg1 = WScript.Arguments.Item(0);
var arg2 = WScript.Arguments.Item(1);
var shl = new ActiveXObject("WScript.Shell");
var fso = new ActiveXObject("Scripting.FileSystemObject");
var inDir = fso.GetFolder(arg1);
var outDirName = fso.GetFolder(arg2).Path;
if(!endsWith(outDirName, "\\")) {
outDirName += "\\";
}
var e = new Enumerator(inDir.Files);
for(; !e.atEnd(); e.moveNext()) {
if(isImageFile(e.item().Name)) {
var inFileName = e.item().Path;
var outFileName = outDirName + e.item().Name + ".jpg";
var command = "photoshifter /format jpeg /file \"" + inFileName + "\" \"" + outFileName + "\"";
if(execApp(command) != 0) {
throw new Error("失敗しました。(" + inFileName + ")");
}
}
}
WScript.Echo("完了しました。");
function execApp(command) {
var process = shl.Exec(command);
while(process.Status == 0) {
WScript.Sleep(100);
}
return process.ExitCode;
}
function endsWith(x, term)
{
var position = x.length - term.length;
if(position >= 0) {
return x.substring(position) == term;
}
return false;
}
function isImageFile(fileName)
{
var name = fileName.toLowerCase();
if(endsWith(name, ".bmp")) return true;
if(endsWith(name, ".jpg")) return true;
if(endsWith(name, ".jpeg")) return true;
if(endsWith(name, ".jpe")) return true;
if(endsWith(name, ".gif")) return true;
if(endsWith(name, ".tif")) return true;
if(endsWith(name, ".tiff")) return true;
if(endsWith(name, ".png")) return true;
return false;
}
ver2.30で コマンドラインから実行時の引数に /dir オプションを追加しました。