Created
December 17, 2011 18:20
-
-
Save saitamanodoruji/1490949 to your computer and use it in GitHub Desktop.
.jpg mabiku JScript
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// usage: | |
// >cscript mabiku.js DENOMINATOR [SOURCE DESTINATION] | |
// Echo を使いやすく | |
function echo(m) {WScript.Echo(m);} | |
// 引数を使いやすく | |
var args = []; | |
for (var i = 0; i < WScript.arguments.length; i++) { | |
args.push(WScript.arguments(i)); | |
} | |
// 引数無いときはエラーで終了 | |
if (args.length == 0) { | |
echo('エラー: 少なくとも 1 つ引数をください(割る数).'); | |
} else { | |
// ファイル操作とかするオブジェクトを作る | |
var fso = new ActiveXObject('Scripting.FileSystemObject'); | |
var app = new ActiveXObject('Shell.Application'); | |
var shell = new ActiveXObject('WScript.Shell'); | |
// 引数が足りないときの補完 | |
if (args.length == 1) args.push(shell.CurrentDirectory); | |
if (args.length == 2) args.push(args[1] + '\\copied'); | |
if (args.length > 3) echo('警告: 引数多すぎ.4 つめ以降は無視する.'); | |
// コピー元の .jpg を数える | |
var items = app.NameSpace(args[1]).Items(); | |
var names = []; | |
for (var n = 0, i = 0; i < items.Count; i++) { | |
if (items.Item(i).Name.match(/\.jpg$/)) { | |
names.push(items.Item(i).Name); | |
n++; | |
} | |
} | |
echo('mabiku.js: ディレクトリ ' + args[1] + ' にある .jpg の数は ' + n + ' 個'); | |
// コピー実行 | |
// コピー先フォルダがなかったらコピー元に copied フォルダを作ってそこにコピーする | |
// コピー先にすでにファイルがあったらどうなるかとかはよく調べてない | |
if (!fso.FolderExists(args[2])) { | |
fso.CreateFolder(args[2]); | |
} | |
for (var m = 0, i = 0; i < n; i++) { | |
if (i % args[0] == 0) { | |
fso.CopyFile(args[1] + '\\' + names[i], args[2] + '\\' + names[i]); | |
m++; | |
} | |
} | |
echo('mabiku.js: ' + n + ' 個のファイルのうち ' + m + ' 個を ' + args[2] + ' にコピーした'); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment