仕事を辞めたい、怠け者だからな

仕事を辞めたいとグダグダ言いながらも、やめる手順が面倒だということで結局やめない「からな」の面倒嫌いブログです。日々のことなり、色々書いていきます。自由気まま、やりたいことばかりやっちゃう。

仕事を辞めたい、
怠け者だからな

メインブログです。
ぐだぐだしつつも、
やりたいことに全力全身!

  最高の出会いを求めて
自身の最高の出会いまでの道のり、
方法を書いていきます。

  標準体重を目指して
標準体重を目指して奮闘する!
ダイエットグッズ実践含みます。

【Chrome拡張】storageの値受け渡しや、Popup.htmlへのイベントの追加方法

大文字小文字も適当で、まぁこんなんで良いのかって感じですが
良く分からなくなることも多い為、備忘録として。
Popupの値を保持して、Popupのボタンを押した場合には
特定ページを開いて特定IDの部分に自動で書き込みたい
それだけなのに3日以上かかってしまった。

popup.html

<input type="button" value="新しいタブを開く" id="TabOpen">
<textarea id="Naiyou" rows="10" cols="100"></textarea>
<script src="TEST.js"></script>


TEST.js

const TabOpen = document.getElementById("TabOpen");//面倒なので変数割り当て
const NAIYOU = document.getElementById("Naiyou");//面倒なので変数割り当て

var actionA = function() {
	// 処理内容
	updateStorage();//strageアップデート
}

//Storageに保存
function setLocalStorage(obj) {
    return new Promise( (resolve) => {
        chrome.storage.local.set( obj, () => resolve() );
    });
}

//Storageから取得
function getLocalStorage(key = null) {
    return new Promise( (resolve) => {
        chrome.storage.local.get(key, (item) => {
            key ? resolve(item[key]) : resolve(item);
        });
    });
}

// Strageアップデート
async function updateStorage(){
	var promises = [];
	promises[0]=setLocalStorage({my_naiyo:NAIYOU.value});// キー:値
	//本来はここにたくさんpromisesを入れてた
    //まとめて追加するのがなぜか上手くいかなかったため、1つずつ追加していた
    //promises[1]=setLocalStorage({my_aaaa:AAAA.value});のように。
	await Promise.all(promises);//実行完了まで待つ
}

// 以前の内容読み込み
async function getBeforeStorage(){
	let a = await getLocalStorage("my_naiyo");
	NAIYOU.value=a;
}

var tabView = function() {
	updateStorage();//strageアップデート
	chrome.tabs.create({url:"https://www.google.com/"});
}

TabOpen.addEventListener("click", tabView );//イベント設定
Naiyou.addEventListener("change", actionA );//イベント設定

getBeforeStorage();//以前の値を取得

contentscriptは「var undefined;」と比較して
undefinedになっているかどうかチェックした(上手く行ってるかは不明)

IDでvalueを参照・設定する場合

HTML

<select id="TestA">
<option value="">-</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="4">C</option>
<option value="3">D</option>
</select>

JSファイル

const TestA = document.getElementById("TestA");
TestA.options["1"].selected=true; //valueでselectできる
TestA.dispatchEvent(new Event("change"));

Nameでvalueを参照・設定する場合

HTML

<select name="TestB">
<option value="">-</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="4">C</option>
<option value="3">D</option>
</select>

JSファイル

const TestB = document.getElementById("TestB");
TestB [0].value="2"; //value2でselectできる?

あってるのはか不明です…。
間違っていても責任は取れません。すみません。
必要な事だけ調べていったつぎはぎコードで作りました。
プログラミングをもっと勉強すべきですね。ハイ。


参考
qiita.com
teratail.com
teratail.com

Promiseについてはどこのサイトだったか全然思い出せない。

業績目標管理:TaskJengaというフリーソフトを見つけた

いつも業績目標の高さで苦労し
やる気が出ることもなく業績結果報告。
そして、「申し訳ありません、達成できませんでした」と謝罪する。
それを毎期繰り返している。

アホだ。何も学んでいない。
というよりなにより、仕事にやる気が出ないのだ。

確かに、仕事に理想はあった。
もっとバリバリ働けるかもしれない。
1から10まで知っていて、ズバッと答えることができる博士みたいになれるかも。
そんなの「やる気」と「どれだけ学んだか」が問題だ。説明能力も必須だけれど。
私には、やる気も、知識も、説明能力も、経験も欠けている。

補うには、どれだけ頑張れるかなど重要だけど、
本当にやる気が無い。ミリも無いかもしれない。
ゲーム作りたいし、小説書きたいし、アプリ作りたいし
他の事で頭がいっぱいなのだ。はぁ。

業績目標を毎回達成できず、謝罪してばかりなので
それ用のアプリを作ろうと思っていた。毎回目標が目につき、それをどの程度達成できたか。
イメージとしては「TaMa.5 Free」が近い。
www.netsphere.jp
でも、これは入力が大変だし、ずぼらで面倒くさがりな私には無理だ。
もっと楽な入力方法で……期間設定とか良いからとりあえず目標とTodoをぶち込んで
何かしら楽に管理していきたい。できたら定型業務も…。

そんなことを考えて久しぶりに検索してみたら、
「TaskJenga」というフリーソフトを見つけた。
engrowth.me


「完了」って出てくるアニメーションがかわいくて癒される。

欲を言えば、業績目標の管理するのであれば、
業績目標は5つくらい上げるので、ジャンル分けしたい…!
ジャンルごとの達成度も見たい!(わがまま)

さ、今年こそ真面目に仕事しますか。

【cmd】サーバーのフォルダ構成を綺麗に書き出す【バッチ】

仕事で、サーバーのフォルダ構成を綺麗に書き出す必要があった。
普通はないよね、こんなこと。


色んなサイトを参考見て、考えた。
Treeコマンドをバッチファイル化すれば良いんじゃないかと思って
試したらいけた。やったね!

例えば、\\NETDRIVE\テストフォルダという場所のフォルダ構成を出したいとする。
以下の点線内をメモ帳にコピペして
「フォルダ構成書き出し.bat」などにしてどこかに保存すれば使えると思う。

  • -

rem ネットワークドライブに接続する(ローカルのC:\とかだったら不要)
net use \\NETDRIVE\テストフォルダ
rem Treeコマンドで、フォルダの構成を出力する。
tree /F \\NETDRIVE\テストフォルダ > \\NETDRIVE\テストフォルダ\TEST.txt
rem TEST.txtが出来るので、エクスプローラーを開いて確認する
explorer \\NETDRIVE\テストフォルダ

rem もし「ReplaceText.txt」ファイルが既に存在している場合、削除しておく
if exist \\NETDRIVE\テストフォルダ\ReplaceText.txt del \\NETDRIVE\テストフォルダ\ReplaceText.txt

rem 以下の「for」ループ内で変数を変化させるための宣言
setlocal enabledelayedexpansion

rem \\NETDRIVE\テストフォルダ\TEST.txtを1行ずつ「line」変数に入れる
rem 変数「line」内の「│」などを「半角スペース2つ」に置換、
rem また「半角スペース4つ」を「タブ」に置換し、
rem 「ReplaceText.txt」ファイルに書き込む
for /f "delims=" %%a in (\\NETDRIVE\テストフォルダ\TEST.txt) do (
set line=%%a
set line=!line:│= !
set line=!line:└= !
set line=!line:─= !
set line=!line:├= !
set line=!line: = !
echo.!line! >> \\NETDRIVE\テストフォルダ\ReplaceText.txt
)

  • -

\\NETDRIVE\テストフォルダ というのは、単純にサーバー上のフォルダまでのパスを記載してもらえれば。
\\192.168.1.12\テストフォルダ みたいなのでも問題なし。
サーバー上のフォルダ出なければ、最初の1行は不要。
tree /F C:\テストフォルダ > C:\テストフォルダ\TEST.txt
フォルダパスの間に半角スペースが入る(Document and Settingsなど)の場合は
ダブルクォーテーション?で囲ったほうが良いと思う。試してないけど。
tree /F "C:\Document and Settings\User\Desktop" > "C:\Document and Settings\User\Desktop\TEST.txt"


あと、空行のときに「echoはOFFです」みたいなメッセージが出てきて邪魔だった。
echo.!line! のように「.」を入れることで回避できるって見たから、その通りに。




そういえば昨日の言及された件だけど、リンク貼られたらそうなるんだね。
何回も見にいっちゃった。恥ずかしいや。

PCMAX ハッピーメールバナー