dtcopy.js2021.06.14JScriptshift_jis
引数のファイルパス(フォルダパス)のファイル(フォルダ)をコピーする。コピーの際は、その時点の日付文字列を付与します。
「送る」フォルダへ配置して使用してください。
(簡単な使い方)
ファイルまたはフォルダを選択して、右クリック。「送る」を選択。
コピーファイル名: fromfile_yyyyMMddtHHmmss.txt
// dtcopy.js (C) 2012-2021 Hirywork // Set SendTo Folder
function getDateString() {
var dt = new Date();
var r = dt.getFullYear();
var a = [dt.getMonth() + 1, dt.getDate(),
dt.getHours(), dt.getMinutes(), dt.getSeconds()];
for (var i = 0; i < 5; i++) r = r * 100 + a[i] + '';
return (r.slice(0,8) + 't' + r.slice(8));
}
var fso = new ActiveXObject("Scripting.FileSystemObject");
var args = WScript.Arguments;
if (args.length != 1) WScript.Quit;
var f = args(0);
var p = fso.FolderExists(f) + fso.FileExists(f) * 2;
if (p == 0) WScript.Quit;
var t = null;
do {
WScript.Sleep(500);
var e = p > 1 ? fso.GetExtensionName(f) : '';
if (e) e = '.' + e;
t = f.slice(0, e ? -e.length : f.length) + '__' + getDateString() + e;
} while (fso.FolderExists(t));
p == 1 ? fso.CopyFolder(f, t, true) : fso.CopyFile(f, t, true);
new ActiveXObject("WScript.Shell").Popup('dtcopy\r\n' + t, 20, 'dtcopy');
minsch.hta2022.04.23HTAshift_jis
シンプルなスケジュール表。
ソース先頭のデータ部分(id='data'部分)を書き換えて使用します。
カンマ区切りで左端に「OK」で「済」、2つ目が期限。3つ目が要件。
行の最後に「\」を付けます。
<html>
<head>
<title id='data'>minsch<!--\
ok,2021/01/15,ソース修正\
,2021/12/31,大晦日\
,2021/12/24,イブ\
--></title>
<HTA:APPLICATION APPLICATIONNAME='datasch' BORDER='none' INNERBORDER='no' MAXIMIZEBUTTON='no' MINIMIZEBUTTON='no' SCROLL='no' SELECTION='yes' SHOWINTASKBAR='no' SINGLEINSTANCE='yes' SYSMENU='yes' WINDOWSTATE = 'normal' />
</head>
<body id='body'></body>
<script type='text/javascript'>
var minsch = (function() {
// 各種定数
var CONFIG = {
FONT_FAMILY: 'メイリオ',
FONT_SIZE: '12'
};
var SCH_RULE = {
OK_SIGN: 'ok',
DAYSAGO_LV1_DAY: 3,
DAYSAGO_LV2_DAY: 7
};
//**Start Encode**
var SCH_COLORS = {
SCH_OK: 'gray',
SCH_OVER: 'tomato',
SCH_TODAY: 'salmon',
SCH_DAYSAGO_LV1: 'orange',
SCH_DAYSAGO_LV2: 'lightblue'
};
var SCH_WORD = {
SCH_OK: '済',
SCH_OVER: '日遅延',
SCH_TODAY: '当日',
SCH_DAYSAGO: '日前'
};
var BODY_STYLE = {
FRONT_COLOR: 'black',
BACKGROUND_COLOR: 'white',
BORDER_COLLAPSE: 'collapse',
MARGIN: '0px',
PADDING: '0px'
};
var TABLE_STYLE = {
FRONT_COLOR: 'black',
BACKGROUND_COLOR: 'white',
BORDER_COLLAPSE: 'collapse',
MARGIN: '1px',
PADDING: '4px',
BORDERCOLOR: 'darkslategray',
BORDERSTYLE: 'solid',
BORDERWIDTH: '1px'
};
// トリム
var trim = function (s) {
return s.replace(/^\s*|\s*$/g, '');
};
// エレメント取得
var ge = function (tag) {
return document.getElementById(tag);
};
// 日付取得
var getdate = function(dts) {
var dt = new Date(dts);
if (isNaN(dt)) {
dt = new Date((new Date()).setHours(0, 0, 0, 0));
}
return dt;
};
// 曜日取得
var getweekday = function (dts) {
return '日月火水木金土'.substr(getdate(dts).getDay(), 1);
};
// 日数カウント
var getdayc = function (dts) {
return (getdate(dts).getTime() - getdate().getTime()) / (1000 * 60 * 60 * 24);
};
// フォントカラー、バックグラウンドカラー設定
var setfbcolor= function (e, fc, bc) {
e.style.color = fc;
e.style.backgroundColor = bc;
};
// フォント設定
var setfont = function (e) {
e.style.fontFamily = CONFIG.FONT_FAMILY;
e.style.fontSize = CONFIG.FONT_SIZE;
};
// スタイル設定
var setstyle = function (e, styledic) {
setfont(e);
e.style.borderCollapse = styledic.BORDER_COLLAPSE;
e.style.margin = styledic.MARGIN;
e.style.padding = styledic.PADDING;
e.clearAttributes();
};
// テーブルスタイル設定
var settablestyle = function (e) {
setstyle(e,TABLE_STYLE);
e.noWrap = true;
e.style.borderColor = TABLE_STYLE.BORDERCOLOR;
e.style.borderStyle = TABLE_STYLE.BORDERSTYLE;
e.style.borderWidth = TABLE_STYLE.BORDERWIDTH;
};
// データ格納用
var gd = {
schdata: []
};
// データ読み取り
var getdata = function () {
var d = ge('data').innerHTML.split('\\');
var t, s;
for (var i = 0; i < d.length; i++) {
t = trim(d[i]);
if (t.length > 0 && d[i].indexOf(',') >= 0) {
s = t.split(',');
if (s.length >= 3) {
gd.schdata[gd.schdata.length] = s;
}
}
}
};
// 画面作成
var formmake = function () {
// body
var bd = ge('body');
setstyle(bd, BODY_STYLE);
setfbcolor(bd, BODY_STYLE.FRONT_COLOR, BODY_STYLE.BACKGROUND_COLOR);
// table
var tb = document.createElement('table');
tb.id = 'tbl';
settablestyle(tb);
// table row
var s, dc, cm, bc, i, j;
for (i = 0; i < gd.schdata.length; i++) {
s = gd.schdata[i];
var tr = tb.insertRow();
settablestyle(tr);
dc = getdayc(s[1]);
if (s[0].toLowerCase() == SCH_RULE.OK_SIGN) { cm = SCH_WORD.SCH_OK; bc = SCH_COLORS.SCH_OK; }
else if (dc < 0) { cm = -dc + SCH_WORD.SCH_OVER; bc = SCH_COLORS.SCH_OVER; }
else if (dc == 0) { cm = SCH_WORD.SCH_TODAY; bc = SCH_COLORS.SCH_TODAY; }
else if (dc <= SCH_RULE.DAYSAGO_LV1_DAY) { cm = dc + SCH_WORD.SCH_DAYSAGO; bc = SCH_COLORS.SCH_DAYSAGO_LV1; }
else if (dc <= SCH_RULE.DAYSAGO_LV2_DAY) { cm = dc + SCH_WORD.SCH_DAYSAGO; bc = SCH_COLORS.SCH_DAYSAGO_LV2; }
else { cm = dc + SCH_WORD.SCH_DAYSAGO; bc = TABLE_STYLE.BACKGROUND_COLOR; }
tr.style.backgroundColor = bc;
for (j = 0; j < s.length; j++) {
var td = tr.insertCell();
settablestyle(td);
switch (j) {
case 0: td.innerHTML = cm; break;
case 1: td.innerHTML = s[j] + '(' + getweekday(s[j]) + ')'; break;
default: td.innerHTML = s[j];
}
}
}
ge('body').appendChild(tb);
};
// データロード
window.onload = function () {
//debugger;
getdata();
formmake();
var t = ge('tbl');
t.ondblclick = function() { window.close(); }
var timer = null;
clearTimeout(timer);
timer = setTimeout(function() {
var w = t.clientWidth + 4;
var h = t.clientHeight + 4;
window.resizeTo(w, h);
window.moveTo(screen.width - w, 0);
}, 1000)
};
})();
</script>
</html>
copyandrun.js2021.01.07JScriptshift_jis
[ファイル名]-copyandrun.js の名前のファイルを作成する。実行すると、同フォルダ内の[ファイル名]_save[日]形式でコピーします。
また、コピー後 [ファイル名]のファイルを実行します。
/*------------------------------------------------------------------------------------------------------
*-copyandrun.js (* .. target file)
------------------------------------------------------------------------------------------------------*/
(function () {
var APP_NAME = '-copyandrun.js'
var savename = '_save' + (new Date()).getDate();
var fso = new ActiveXObject("Scripting.FileSystemObject");
var wsh = WScript.CreateObject("WScript.Shell");
var cd = fso.GetFile(WScript.ScriptFullName).ParentFolder.Path;
if (cd.slice(-1) != '\\') {
cd += '\\';
}
var scriptname = WScript.ScriptName;
var tar = scriptname.replace(new RegExp(APP_NAME + '$', 'g'),'');
if (tar.length > 0 && scriptname != tar) {
var fulltar = cd + tar;
if (wsh.Popup('Copy ' + fulltar, 0) == 1) {
if (fso.FolderExists(fulltar)) {
fso.CopyFolder(fulltar, fulltar + savename , true);
} else if (fso.FileExists(fulltar)){
var f = fso.GetFileName(fulltar);
var e = fso.GetExtensionName(fulltar);
e = e.length > 0 ? '.' + e : '';
f.replace(new RegExp(e + '$'), '');
fso.CopyFile(fulltar, cd + f + savename + e , true);
}
}
wsh.CurrentDirectory = cd;
wsh.Popup('run \"' + fulltar + '\" file.', 1000)
wsh.run('\"' + fulltar + '\"', 1, false);
WScript.Sleep(1000);
} else {
wsh.Popup('File name error. Set the file name in * ' + APP_NAME + ' format.', 0, APP_NAME);
}
wsh = null;
fso = null;
})();
ielink.hta2023.03.28HTAutf-8
Internet Explorerを開くリンクを表示します。
<html>
<head><title>IE起動</title></head>
<body><a href="about:blank" onclick="window.close()">クリックでIEを起動します。</a>
</html>